December 7, 200718 yr hii sa-mpers ik wou ff weete een van jullie iets weet over het maken van een telport commando 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
December 7, 200718 yr 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.
December 7, 200718 yr 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 Edited December 7, 200718 yr by Sandra18[NL]
December 7, 200718 yr 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 Edited December 7, 200718 yr by VWO-er
December 7, 200718 yr 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 ^^ Edited December 7, 200718 yr by Sandra18[NL]
December 8, 200718 yr 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! Edited December 8, 200718 yr by Rivel
December 8, 200718 yr Gewoon hetzelfde ja 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
December 16, 200718 yr 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
December 16, 200718 yr [...]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 Edited December 16, 200718 yr by VWO-er
December 16, 200718 yr [...]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! Edited December 16, 200718 yr by Rivel
December 16, 200718 yr 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; } Edited December 16, 200718 yr by Sandra18[NL]
December 23, 200718 yr Author heeii ik wou jullie ff bedanke maar.. ik heb nu een teleport naar liberty city maar ik heb 2 problempjes 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 op hoop van zege >
December 23, 200718 yr heeii ik wou jullie ff bedanke maar.. ik heb nu een teleport naar liberty city maar ik heb 2 problempjes 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 op hoop van zege > Het zou handig zijn als je je teleport-code hier neer zet. Ik kan namelijk niet vanaf hier ruiken waar de fout zit
December 23, 200718 yr Author heeii ik wou jullie ff bedanke maar.. ik heb nu een teleport naar liberty city maar ik heb 2 problempjes 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 op hoop van zege > 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 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 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 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
December 23, 200718 yr Ja, 'hemel' word meestal 'interior' genoemd. Als je naar Liberty City wilt teleporteren, moet je SetPlayerInterior(playerid, 1); aan het commando toevoegen. Want '1' is het interior-id van Liberty City. Als je weer terug wilt teleporteren, dan moet je SetPlayerInterior(playerid, 0); gebruiken.
hii sa-mpers
ik wou ff weete een van jullie iets weet over het maken van een telport commando
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