Mort 29 Odesláno: 16. Leden, 2015 Share Odesláno: 16. Leden, 2015 Tohle se hodí pro začátečníky, kteří ještě neví, jak co funguje. Tohle jsou základní vysvětlivky základních událostí s parametry a návratovými hodnotami i s poznámkami. Vše je převzaté z samp-wiki Stačí vytvořit nový projekt v pawnu, vše smažete a zkopírujete následující kód: #include <a_samp> main(){} /// Událost: OnGameModeInit /// Popis: Tato událost nastane, když se spustí gamemód /// Parametry: - /// Return: - public OnGameModeInit() { return 1; } /// Událost: OnGameModeExit /// Popis: Tato událost nastane, když se vypne gamemód /// Parametry: - /// Return: - public OnGameModeExit() { return 1; } /// Událost: OnPlayerRequestClass /// Popis: Tato událost nastane, když hráč přepne postavu ve výběru classů /// Parametry: /// playerid = id hráče, který si přepnul class /// classid = návratová hodnota AddPlayerClass /// Return: 0 - neumožní hráči se spawnout /// Poznámka: Tato událost nastane při stisku F4 public OnPlayerRequestClass(playerid, classid) { return 1; } /// Událost: OnPlayerConnect /// Popis: Tato událost nastane, když se hráč připojí na server /// Parametry: /// playerid = id hráče, který se připojil /// Return: 0 - zabrání ostatním filterscriptům, aby se při připojení tato událost vyvolala /// 1 - umožní ostatním filterscriptům, aby se při připojení tato událost vyvolala public OnPlayerConnect(playerid) { return 1; } /// Událost: OnPlayerDisconnect /// Popis: Tato událost nastane, když se hráč odpojí ze serveru /// Parametry: /// playerid = id hráče, který se odpojil /// reason = důvod, proč se hráč odpojil /// 0 - Timeout/crash (hráč ztratil spojení se serverem) /// 1 - Quit (hráč odešel ze serveru příkazem /q nebo přes menu /// 2 - Kick/ban /// Return: 0 - zabrání ostatním filterscriptům, aby se při připojení tato událost vyvolala /// 1 - umožní ostatním filterscriptům, aby se při připojení tato událost vyvolala /// Poznámka: Některé funkce jako GetPlayerIp & GetPlayerPos nebudou správně fungovat, protože /// hráč již nebude na serveru. public OnPlayerDisconnect(playerid, reason) { return 1; } /// Událost: OnPlayerSpawn /// Popis: Tato událost nastane, když se hráč spawne /// Parametry: /// playerid = id hráče, který se spawnul /// Return: 0 - pokud hráč zemře, tak se vrátí výběru skinu public OnPlayerSpawn(playerid) { return 1; } /// Událost: OnPlayerDeath /// Popis: Tato událost nastane, když hráč zemře sebevraždou nebo zabitím od jiného hráče /// Parametry: /// playerid = id hráče, který byl zabit /// killerid = id hráče, který zabil hráče (pokud hráč spáchal sebevraždu, killerid hodnota bude INVALID_PLAYER_ID) /// reason = způsob, jakým hráč zemřel /// Všechny způsoby na odkaze: http://wiki.sa-mp.com/wiki/Weapons /// Return: - /// Poznámka: Vždy si kontrolujte, jestli killerid se nerovná hodnotě INVALID_PLAYER_ID (65535)!!! /// Ale pokud používáte funkce SendDeathMessage, tak INVALID_PLAYER_ID můžete v ní použít public OnPlayerDeath(playerid, killerid, reason) { return 1; } /// Událost: OnVehicleSpawn /// Popis: Tato událost nastane, když se respawne vozidlo /// Parametry: /// vehicleid = id vozidla, které bylo spawnuto /// Return: - public OnVehicleSpawn(vehicleid) { return 1; } /// Událost: OnVehicleDeath /// Popis: Tato událost nastane, když se vozidlo zničí - explozí nebo "utopením" ve vodě /// Parametry: /// vehicleid = id vozidla, které bylo zničeno /// killerid = id hráče, který byl "uznán" za zničení vozidla (většinou řidič, pasažér nebo nejbližší hráč) /// Return: - /// Poznámka: Tato událost se vyvolá ihned při styku s vodou, ale může být zachráněno vyjetím z vody, teleportováním /// nebo před sebeničením (jenom pokud je jen částečně ponořené). Tato událost ale již znovu nezavolá, takže /// se může stát, že při vystoupení ihned nebo po nějaké době zmizí. public OnVehicleDeath(vehicleid, killerid) { return 1; } /// Událost: OnPlayerText /// Popis: Tato událost nastane, hráč napíše nějaký text do chatu /// Parametry: /// playerid = id hráče, který poslal zprávu do chatu /// text = text, který napsal /// Return: 0 - znemožní poslat zprávu všem hráčům (tzn. že pokud chceme nějak formátovat zprávu tak po zformátování /// použijeme SendClientMessageToAll) public OnPlayerText(playerid, text[]) { return 1; } /// Událost: OnPlayerCommandText /// Popis: Tato událost nastane, hráč napíše příkaz (text, kde první znak je '/') /// Parametry: /// playerid = id hráče, který poslal příkaz /// cmdtext = příkaz, který byl zadán (zahrnuje první znak '/') /// Return: 0 - pokud příkaz nebyl proveden (tzn. že příkaz neexistuje) (napíše: SERVER: Unknown Commnad) /// 1 - pokud příkaz byl úspěšně proveden public OnPlayerCommandText(playerid, cmdtext[]) { return 0; } /// Událost: OnPlayerEnterVehicle /// Popis: Tato událost nastane, hráč nastupuje do vozidla /// Parametry: /// playerid = id hráče, který nastupuje do vozidla /// vehicleid = id vozidla, do kterého se hráč snaží nasednout /// ispassenger = /// 0 = hráč nastupuje jako řidič /// 1 = hráč nastupuje jako spolucestující /// Return: - /// Poznámka: Tato událost začne vždy až když hráč nastupuje do vozidla, ne když zmáčkne enter /// Tato událost se vyvolá, ikdyž je vozidlo zamčené nebo plné public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } /// Událost: OnPlayerExitVehicle /// Popis: Tato událost nastane, hráč vystupuje z vozidla /// Parametry: /// playerid = id hráče, který vystupuje z vozidla /// vehicleid = id vozidla, ze kterého hráč vystupuje /// Return: - /// Poznámka: Tato událost se nevyvolá, když spadnete z motorky nebo z kola, nebo použitím SetPlayerPos /// Musíte použít událost OnPlayerStateChange, aby jste zkontrolovali jejich /// status - PLAYER_STATE_DRIVER nebo PLAYER_STATE_PASSENGER public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } /// Událost: OnPlayerStateChange /// Popis: Tato událost nastane, hráč změní svůj status /// Parametry: /// playerid = id hráče, který změnil svůj status /// newstate = hráčův nový status /// oldstate = hráčův starý status /// Status naleznete zde: http://wiki.sa-mp.com/wiki/State /// Return: - public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } /// Událost: OnPlayerEnterCheckpoint /// Popis: Tato událost nastane, hráč vstoupí do checkpointu /// Parametry: /// playerid = id hráče, který vstoupil do checkpointu /// Return: - public OnPlayerEnterCheckpoint(playerid) { return 1; } /// Událost: OnPlayerLeaveCheckpoint /// Popis: Tato událost nastane, hráč opustí checkpoint /// Parametry: /// playerid = id hráče, který opustil checkpoint /// Return: - public OnPlayerLeaveCheckpoint(playerid) { return 1; } /// Událost: OnPlayerEnterRaceCheckpoint /// Popis: Tato událost nastane, hráč vstoupí do závodního checkpointu /// Parametry: /// playerid = id hráče, který vstoupil do závodního checkpointu /// Return: - public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } /// Událost: OnPlayerLeaveRaceCheckpoint /// Popis: Tato událost nastane, hráč opustí závodní checkpoint /// Parametry: /// playerid = id hráče, který opustil závodní checkpoint /// Return: - public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } /// Událost: OnRconCommand /// Popis: Tato událost nastane, když se pošle příkaz přes konzoli, vzdálené RCON nebo ve hře /rcon [příkaz] /// Parametry: /// cmd = text, který byl odeslán do konzole (bez textu '/rcon') /// Return: 0 - pokud příkaz nebyl proveden, tak se zkusí pustit v jiném scriptu /// 1 - pokud příkaz byl proveden, již se neodešle do jiného scriptu /// Poznámka: Tato událost musí být ve filterscriptech, aby fungovala v gamemodu! public OnRconCommand(cmd[]) { return 1; } /// Událost: OnPlayerRequestSpawn /// Popis: Tato událost nastane, když hráč pokusí spawnout podle výběru classy /// Parametry: /// playerid = hráč, který se pokouší spawnout /// Return: 0 - zabrání hráči se spawnout /// Poznámka: Aby jste zabránili spawnowání se stejnou classou, musí být poslední prohlížená classa /// v OnPlayerRequestClass uložena do proměnné public OnPlayerRequestSpawn(playerid) { return 1; } /// Událost: OnObjectMoved /// Popis: Tato událost nastane, když se pohne nějaký objekt /// Parametry: /// objectid = id objektu, který se pohnul /// Return: - /// Poznámka: SetObjectPos v této události nefunguje. Aby jste to opravili, potřebujete znovu vytvořit objekt public OnObjectMoved(objectid) { return 1; } /// Událost: OnPlayerObjectMoved /// Popis: Tato událost nastane, když skončí funkce MovePlayerObject /// Parametry: /// playerid = id hráče, který je spjatý s objektem /// objectid = id objektu, který skončil pohyb /// Return: - public OnPlayerObjectMoved(playerid, objectid) { return 1; } /// Událost: OnPlayerPickUpPickup /// Popis: Tato událost nastane, když hráč "šlápne" na pickup, který byl vytvořen pomocí CreatePickup /// Parametry: /// playerid = id hráče, který šplápl na pickup /// pickupid = id pickupu, na který hráč šlápnul /// Return: - public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } /// Událost: OnVehicleMod /// Popis: Tato událost nastane, když je auto upraveno v garáži /// Parametry: /// playerid = id řidiče /// vehicleid = id auta, které bylo upraveno /// componentid = id komponentu, které bylo k auto přidáno /// viz. zde: http://wiki.sa-mp.com/wiki/Car_Component_ID /// Return: 0 - zabraňuje dát na vozidlo komponentu, která tam nepatří /// Poznámka: Tato událost se nezavolá, když použijete AddVehicleComponent public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } /// Událost: OnVehiclePaintjob /// Popis: Tato událost nastane, když se autu změní potisk /// Parametry: /// playerid = id hráče, který změnil potisk vozidla /// vehicleid = id auta, kterému byl změněn potisk /// paintjobid = id nové barvy /// viz. zde: http://wiki.sa-mp.com/wiki/Paintjob /// Return: - public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } /// Událost: OnVehicleRespray /// Popis: Tato událost nastane, když hráč opustí mod shop, nebo kdykoliv změní barvu, ale nikdy není vyvolaná v pay 'n' spray garážích /// Parametry: /// playerid = id řidiče /// vehicleid = id auta, kterému byla změněna barva /// color1 = primární barva /// color2 = sekundární barva /// Return: 0 - zabrání změně barvy /// 1 - povolí /// Poznámky: http://pastebin.com/zX96D4dA - fix pro pay 'n' spay obchody public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } /// Událost: OnPlayerSelectedMenuRow /// Popis: Tato událost nastane, když hráč vybere položku z menu /// Parametry: /// playerid = id hráče, který vybral položku z menu /// row = id řádku, který hráč vybral /// Return: - /// Poznámky: V parametrech není ID menu, proto musíte použít funkce GetPlayerMenu pro zjištění aktuálně užívaného menu public OnPlayerSelectedMenuRow(playerid, row) { return 1; } /// Událost: OnPlayerExitedMenu /// Popis: Tato událost nastane, když hráč opustí menu /// Parametry: /// playerid = id hráče, který opustil menu /// Return: - public OnPlayerExitedMenu(playerid) { return 1; } /// Událost: OnPlayerInteriorChange /// Popis: Tato událost nastane, když hráč změní interior /// Parametry: /// playerid = id hráče, kterému se změnil interior /// newinteriorid = id interiéru, do kterého se hráč přesunul /// oldinteriorid = id interiéru, ze kterého se hráč přesunul /// Return: - public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } /// Událost: OnPlayerKeyStateChange /// Popis: Tato událost nastane, když hráč zmáčkne některé podporované tlačítko /// Parametry: /// playerid = id hráče, který zmáčknul tlačítko /// newkeys = viz. wiki /// oldkeys = viz. wiki /// Return: 1 - umožní být volaný i v ostatních scriptech /// 0 - neumožní být volán v ostatních scriptech /// Poznámky: http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { return 1; } /// Událost: OnRconLoginAttempt /// Popis: Tato událost nastane, když se některý hráč pokusí, nebo se dostane do RCON administrace /// Parametry: /// ip = ip hráče, který se pokusil nebo dostal do RCON administrace /// password = heslo, které použil /// success = 1 - heslo bylo správné; 0 - heslo bylo nesprávné /// Return: - /// Poznámky: Volá se pouze ve hře /rcon login [heslo] public OnRconLoginAttempt(ip[], password[], success) { return 1; } /// Událost: OnPlayerUpdate /// Popis: Tato událost nastane pokaždé, když hráč změní svůj status na serveru (pozice, zbraň, ...) /// Parametry: /// playerid = id hráče, který poslal serveru packet /// Return: 0 - update od hráče se nebude kopírovat ostatním klientům /// 1 - update bude proveden a odeslán ostatním klientům /// Poznámky: Tato událost se zavolá i několikrát za vteřinu, proto by jste tuto událost neměli používat nadarmo public OnPlayerUpdate(playerid) { return 1; } /// Událost: OnPlayerStreamIn /// Popis: Tato událost nastane, když hráč začne získavat data o jiném hráči /// Parametry: /// playerid = id hráče, který získává data /// forplayerid = id hráče, od kterého hráč získává data /// Return: - public OnPlayerStreamIn(playerid, forplayerid) { return 1; } /// Událost: OnPlayerStreamOut /// Popis: Tato událost nastane, když hráč přestane získavat data o jiném hráči /// Parametry: /// playerid = id hráče, který přestal získávat data /// forplayerid = id hráče, od kterého hráč přestal získávat data /// Return: - public OnPlayerStreamOut(playerid, forplayerid) { return 1; } /// Událost: OnVehicleStreamIn /// Popis: Tato událost nastane, když hráč začne získávat data o vozidlu /// Parametry: /// vehicleid = id vozidla, od kterého hráč získáva data /// forplayerid = id hráče, který začal získávat data o vozidlu /// Return: - public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } /// Událost: OnVehicleStreamOut /// Popis: Tato událost nastane, když hráč přestane získávat data o vozidlu /// Parametry: /// vehicleid = id vozidla, od kterého hráč přestal získávat data /// forplayerid = id hráče, který přestal získávat data o vozidlu /// Return: - public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } /// Událost: OnDialogResponse /// Popis: Tato událost nastane, když hráč má zobrazený dialog ShowPlayerDialog a zmáčkne /// levé nebo pravé tlačítko, ESC/ENTER nebo zmáčkne na položku v seznamu /// Parametry: /// playerid = id hráče /// dialogid = id dialogu /// response = /// 1 = levé tlačítko /// 0 = pravé tlačítko /// listitem = ID položky, kterou vybral hráč (začíná od 0) /// inputtext = text v input-boxu nebo text vybrané položky /// Return: 0 - pokud nenalezne id dialogu, tak se ho pokusí najít v jiném scriptu public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { return 1; } /// Událost: OnPlayerClickPlayer /// Popis: Tato událost nastane, když hráč klikne 2x na jiného hráče v tabulce (TAB) /// Parametry: /// playerid = id hráče, který klikl na jiného hráče /// clickedplayerid = id hráče, na kterého jiný hráč klikl /// source = způsob, jak hráč na druhého hráče klikl /// viz. zde: http://wiki.sa-mp.com/wiki/Click_Sources /// Return: 0 - pokud nenalezne id dialogu, tak se ho pokusí najít v jiném scriptu public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } Pokud by byly nějaké nesrovnalosti (něco se mi překládalo špatně a všechny události nemám odzkoušené), tak mi napište soukromou zprávu nebo sem do tématu. Děkuji, Mort. Informační návod - Návod označen jako platný Ten to návod byl označen jako platný.Návod může být kdykoli označen jako nevhodný či neplatný 3 Link to comment Share on other sites More sharing options...
Mort 29 Odesláno: 16. Leden, 2015 Author Share Odesláno: 16. Leden, 2015 Díky, opraveno. Link to comment Share on other sites More sharing options...
Danny 37 Odesláno: 16. Leden, 2015 Share Odesláno: 16. Leden, 2015 Wáw, je to tak jednoduchý návod, ale brutálny! Pametám si že práve ja keď som začínal, som mal s týmto problémy, vždy som nevedel osekať ten new.pwn na základ gamemódu, a tie vysvetlivky na jednotlivé funkcie sa mi ešte aj teraz zídu, super návod..! Link to comment Share on other sites More sharing options...
Mivčo 90 Odesláno: 16. Leden, 2015 Share Odesláno: 16. Leden, 2015 Krása Mort Link to comment Share on other sites More sharing options...
RoBiK 3 Odesláno: 17. Leden, 2015 Share Odesláno: 17. Leden, 2015 /// Událost: OnPlayerKeyStateChange/// Popis: Tato událost nastane, hráč změní svůj status/// Parametry:/// playerid = id hráče, který změnil svůj status/// newstate = hráčův nový status/// oldstate = hráčův starý status/// Status naleznete zde: http://wiki.sa-mp.com/wiki/State/// Return: -public OnPlayerStateChange(playerid, newstate, oldstate){ return 1;} 1 Link to comment Share on other sites More sharing options...
niko777112 1 Odesláno: 17. Leden, 2015 Share Odesláno: 17. Leden, 2015 Ešte by si tam mohol pridať ktomu nejaké tie príklady Začiatočníkom by to mohlo pomocť Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now