Jump to content

návod Základ gamemodu s poznámkami událostí


Mort

Recommended Posts

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ý

  • Líbí se mi to! (+1) 3
Link to comment
Share on other sites

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

/// 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;
}

  • Líbí se mi to! (+1) 1
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...