Jump to content

teleport? gang?


Recommended Posts

Geplaatst:

hii sa-mpers :D

ik wou ff weete een van jullie iets weet over het maken van een telport commando :tu:

en

ik wou ff wete of een van jullie iets weet over een filterscript voor gang

je weet mischien wel /gang join /gang create dat enz

alvast ty

Geplaatst:

Over de gangs weet ik niets, maar over de teleports kan ik je wel wat vertellen.

Zoek in het script naar de 'OnPlayerCommandText' callback. Staat hij er niet tussen, zet onderaan je script dit stukje:

public OnPlayerCommandText(playerid, cmdtext[]) {

return 0;
}

Goed, nu je de callback hebt geactiveerd, is het tijd om er een commando in te zetten. Neem deze code over, en vul hem naar je eigen wens in.

Begin altijd met een 'if' functie, dit is het commando zelf.

if(strcmp("/teleport",cmdtext,10,true) == 0) {

Als je dit hebt gedaan, kun je nu daaronder de gevolgen inprogrammeren, in dit geval plaats je 'SetPlayerPos', en dan de parameters erachter.

SetPlayerPos(playerid,x,y,z); //Vervang x,y en z door je coörds

Sluit vervolgens het commando af met:

return 1;
}

Na elk commando sluit je hem hiermee af, return 0 komt als allerlaatst. :)

Als allerlaatst zal je code er zo uitzien:

public OnPlayerCommandText(playerid, cmdtext[]) {
if(strcmp("/teleport",cmdtext,10,true) == 0) {
SetPlayerPos(playerid,x,y,z);
return 1;
}
return 0;
}

Succes, mocht het nog wat onduidelijk zijn, hoor ik het graag. :)

Geplaatst: (bewerkt)

Standaard teleport:

if(strcmp(cmd, "/teleport", true) == 0) 
{
SetPlayerPos(playerid, x, y, z);
SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
return 1;
}

Uitgebreide teleport (met voertuig teleport)

if(strcmp(cmd, "/teleport", true) == 0) 
{
if(IsPlayerInAnyVehicle(playerid))
{
	SetVehiclePos(GetPlayerVehicleID(playerid), x , y, z);
	SetVehiceZAngle(GetPlayerVehicleID(playerid), hoek);
	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
}
else	
{
	SetPlayerPos(playerid, x, y, z);
	SetPlayerFacingAngle(playerid, kijkrichting);
	SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
}
return 1;
}

Je kan het zo gek niet bedenken :)

>>Gang-filterscript<<

Edit: Donwell was me voor

Bewerkt: door Sandra18[NL]
Geplaatst: (bewerkt)

Eén ding wat er bij Donwell verkeerd is, is de indeling. Doordat alles op dezelfde 'hoogte' wordt getypt en niet met inspringingen wordt gewerkt zal je de melding 'loose indentation' krijgen. Met 'if' zal je na de 'if' altijd een accolade-open ( { ) zetten, en dan de code, die je een tab inspringt. Daarna sluit je hem met een sluit-accolade ( } ), die weer op dezelfde hoogte staat als de 'if'. Zoals Sandra het doet is dus goed, Donwell's code is dus wel goed, maar zal nog een inspringing in moeten ;)

Bewerkt: door VWO-er
Geplaatst: (bewerkt)

Het is bovendien ook veel overzichtelijker

Dat kan zeker van pas komen als je per ongeluk een error krijgt die aangeeft dat je 'ergens' een haakje mist.

Voor zo'n klein stukje tekst is het nog niet zo'n probleem, maar als je een code van 400 regels hebt....

Door in te springen kan je makkelijk zien waar je een haakje mist.

P.s. Dit systeem heb ik ook van VWO-er geleerd hoor ^^

Bewerkt: door Sandra18[NL]
Geplaatst: (bewerkt)

Euhm, vraagje. Als je die teleport hebt gedaan, en je wil er nog 1 mag je dan gewoon het stukje nogmaals doen en eronder plakken? Dit stukje(maar dan aangepast. Onder een hetzelfde (aners aangepaste) stukje.

if(strcmp(cmd, "/teleport", true) == 0) 
{
SetPlayerPos(playerid, x, y, z);
SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
return 1;
}

@ Hieronder, oh. bedankt!

Bewerkt: door Rivel
Geplaatst:

Gewoon hetzelfde ja :Y Je moet alleen wel het commando veranderen waarmee deze code wordt geactiveerd, en de coördinaten en het bericht wat je krijgt als je dit commando doet.

Het stukje code ziet er dan zo uit:

if(strcmp(cmd, "/teleport 1", true) == 0)
{
SetPlayerPos(playerid, x, y, z);
SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
return 1;
}

if(strcmp(cmd, "/teleport 2", true) == 0)
{
SetPlayerPos(playerid, x, y, z);
SendClientMessage(playerid, COLOR_GREEN, "You have been teleported!");
return 1;
}

Groeten,

VWOer

Geplaatst:

Excuses voor kleine bump. Maar ik zette:

public OnPlayerCommandText(playerid, cmdtext[]) {
if(strcmp(cmd, "/ammunation", true) == 0)
{
SetPlayerPos(playerid, 286.378, -82.606, 1001.515);

return 1;
}

En dan krijg ik deze warning:

C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\Onafgewerkt\Desert DM.pwn(133) : error 017: undefined symbol "cmd"
C:\Documents and Settings\Michiel\Application Data\Microsoft\Internet Explorer\Quick Launch\Modding\SAMP\Onafgewerkt\Desert DM.pwn(139) : warning 217: loose indentation
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error.

HOe kan ik dat in godsnaam verhelpen?

Alvast Bedankt!

Rivel

Geplaatst: (bewerkt)
[...]
De fout is dat er dit staat:
public OnPlayerCommandText(playerid, cmdtext[]) {
if(strcmp(cmd, "/ammunation", true) == 0)
{
SetPlayerPos(playerid, 286.378, -82.606, 1001.515);

return 1;
}

En het moet zijn:

public OnPlayerCommandText(playerid, cmdtext[]) {
if(strcmp(cmdtext, "/ammunation", true) == 0)
{
	SetPlayerPos(playerid, 286.378, -82.606, 1001.515);

	return 1;
}

...omdat de variabele 'cmd' niet is gedefiniëerd. De 2e fout is de fout 'loose indentitation' waarmee bedoeld wordt dat de code niet goed is uitgelijnd. Als er namelijk een accolade { staat moet je inspringen. Het is niet alleen handig om te weten waar je de code weer moet afsluiten, dus de overzichtelijkheid, maar ook Pawno leest zo de code. Als het goed is is de fout nu verholpen ;)

@ hieronder: Dat gebeurde er dus zonet toen ik postte en FireFox flipte :ch:

Bewerkt: door VWO-er
Geplaatst: (bewerkt)
[...]
De fout is dat er dit staat:
public OnPlayerCommandText(playerid, cmdtext[]) {
if(strcmp(cmd, "/ammunation", true) == 0)
{
SetPlayerPos(playerid, 286.378, -82.606, 1001.515);

return 1;
}

En het moet zijn:

public OnPlayerCommandText(playerid, cmdtext[]) {
if(strcmp(cmd[b]text[/b], "/ammunation", true) == 0)
{
	SetPlayerPos(playerid, 286.378, -82.606, 1001.515);

	return 1;
}

...omdat de variabele 'cmd' niet is gedefiniëerd. De 2e fout is de fout 'loose indentitation' waarmee bedoeld wordt dat de code niet goed is uitgelijnd. Als er namelijk een accolade { staat moet je inspringen. Het is niet alleen handig om te weten waar je de code weer moet afsluiten, dus de overzichtelijkheid, maar ook Pawno leest zo de code. Als het goed is is de fout nu verholpen ;)

Dankje het lukt. Maar:

cmd[b]text[/b]

Wat bedoel je hiermee?

@ Onder En boven. Bedankt!

Bewerkt: door Rivel
Geplaatst: (bewerkt)

Ff een correctie voor VWO-er:

Zet geen tags voor dikgedrukt/onderstreept enzo in een code-blok om verwarring te voorkomen.

Anders krijg je

if(strcmp(cmd[b]text[/b], "/ammunation", true) == 0)

Het moet dus zijn:

public OnPlayerCommandText(playerid, cmdtext[]) 
{
if(strcmp(cmdtext, "/ammunation", true) == 0)
{
	SetPlayerPos(playerid, 286.378, -82.606, 1001.515);

	return 1;
}

Bewerkt: door Sandra18[NL]
Geplaatst:

heeii ik wou jullie ff bedanke maar.. ik heb nu een teleport naar liberty city maar ik heb 2 problempjes :duh:

1 het teleport command werkt alleen maar binne als ik het buite doe dan word ik daar tusse die 2 brugge bij lv en sf gespawnt en a

2 als ik het binne doe dan hoor ik alleen een geluidje en zie ik zwart zwart en zwart :duh:

op hoop van zege >:puh::dans:

Geplaatst:
heeii ik wou jullie ff bedanke maar.. ik heb nu een teleport naar liberty city maar ik heb 2 problempjes :duh:

1 het teleport command werkt alleen maar binne als ik het buite doe dan word ik daar tusse die 2 brugge bij lv en sf gespawnt en a

2 als ik het binne doe dan hoor ik alleen een geluidje en zie ik zwart zwart en zwart :duh:

op hoop van zege >:puh::dans:

Het zou handig zijn als je je teleport-code hier neer zet.

Ik kan namelijk niet vanaf hier ruiken waar de fout zit :)

Geplaatst:
heeii ik wou jullie ff bedanke maar.. ik heb nu een teleport naar liberty city maar ik heb 2 problempjes :duh:

1 het teleport command werkt alleen maar binne als ik het buite doe dan word ik daar tusse die 2 brugge bij lv en sf gespawnt en a

2 als ik het binne doe dan hoor ik alleen een geluidje en zie ik zwart zwart en zwart :duh:

op hoop van zege >:puh::dans:

Het zou handig zijn als je je teleport-code hier neer zet.

Ik kan namelijk niet vanaf hier ruiken waar de fout zit :)

ow... die was bij me vriend gemaakt :(

maar ik weet er al wat meer van van allerly hemels.

ik snap alleen niet hoe dat gaat met huisen ingaan ensow maar dat is voor latere zorg :D

eerst zorgen dat me cmd het doet ff kijke

het was jouw uitgebijde cmd voor met auto's duZz maar ik denk dat de fout licht by het wisselen van hemels :puh:

want als je naar liberty city gaat dan hoor je sown geloudje weet je dat hoor ik wel maar ik zie zwrt dit betekend

dat ik in de verkeerde hemel zit :duh:

dus ik weet het niet meer

p.s. ik weet dat van die hemelen omdat we (ik en me vriend) het met de teleporter van jacob hebbe gedaan :puh:

Een reactie plaatsen

Je kan nu een reactie plaatsen en pas achteraf registreren. Als je al lid bent, log eerst in om met je eigen account een reactie te plaatsen.

Gast
Op dit onderwerp reageren...

×   Je hebt text geplaatst met opmaak.   Opmaak verwijderen

  Only 75 emoji are allowed.

×   Je link is automatisch ingevoegd.   In plaats daarvan weergeven als link

×   Je vorige bewerkingen zijn hersteld.   Alles verwijderen

×   You cannot paste images directly. Upload or insert images from URL.

  • Recent actief   0 leden

    • Er zijn hier geen geregistreerde gebruikers aanwezig.
×
×
  • Create New...