Jump to content
  • 0

pomoc Ini save location


newshift

Dotaz


zdravim tvořim mod jen tak to skoušim atd ale do register my chyby aby to uložilo pozici po odpojeni jak to mam prosim udělat ? potřebuji to vědět abych mohl dale pokračovat ve vyvoji

#include < a_samp >
#include < zcmd >
#include < YSI\y_ini >

native WP_Hash(buffer[],len,const str[]);

#define X CZ SK by newshift

#define USE_ZCMD_COMMANDS true // true / false
// if you make this two define true, the command will not 100% works

#define RED 0xAA3333AA
#define YELLOW 0xFFFF00AA
#define PURPLE 0x9370DBFF
// this is the colour defines, it use when send message

#define DIALOG_REGISTER 2011
#define DIALOG_LOGIN 2012
// this is the dialog define, I put 2011/2012 to prevent the dialog will mix

#define UserPath "Users/%s.ini"
// here is the userpath that will be use in saving player data
// "Users" is name of a folder that you need to put in "scriptfiles" folder
// You can change "Users" to any name you want

enum PlayerInfo
{
Pass[129],
// pass
Adminlevel,
// adminlevel
VIPlevel,
// viplevel
Money,
// money/cash
Scores,
// scores
Kills,
// kills
Deaths
// deaths
}
// all this enum will be use in saving players data
new pInfo[MAX_PLAYERS][PlayerInfo];
// make the script short/new variable that can be use

new RandomMSG[][] =
{
"Welcome To "#X" server v0.3z",
"Visit our website at forum.sa-mp.com",
"Play fair and dont cheating/hacking",
"Cheating/hacking will cause you kick/ban"
// above is all random messages, last random messages dont need to put ","
// edit or add more if you want
};


stock Path(playerid)
// create new stock for load the user data
{
new str[128],name[MAX_PLAYER_NAME];
// new string and name variable
GetPlayerName(playerid,name,sizeof(name));
// get player name
format(str,sizeof(str),UserPath,name);
return str;
}

forward loadaccount_user(playerid, name[], value[]);
// forward new function of loadaccount_user
public loadaccount_user(playerid, name[], value[])
// public for loadaccount_user
{
INI_String("Password", pInfo[playerid][Pass],129);
// this is a password so we use INI_STRING
INI_Int("AdminLevel",pInfo[playerid][Adminlevel]);
// this an AdminLevel so we use INI_INT Info:
INI_Int("VIPLevel",pInfo[playerid][VIPlevel]);
// same like above
INI_Int("Money",pInfo[playerid][Money]);
// same like above
INI_Int("Scores",pInfo[playerid][Scores]);
// same like above
INI_Int("Kills",pInfo[playerid][Kills]);
// same like above
INI_Int("Deaths",pInfo[playerid][Deaths]);
// same like above
return 1;
}

main(){}

/// Událost: OnGameModeInit
/// Popis: Tato událost nastane, když se spustí gamemód
/// Parametry: -
/// Return: -
public OnGameModeInit()
{
SetGameModeText("newshift dela mod");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(1, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(2, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(3, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(4, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
AddPlayerClass(5, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}

/// Událost: OnGameModeExit
/// Popis: Tato událost nastane, když se vypne gamemód
/// Parametry: -
/// Return: -
public OnGameModeExit()
{
return 1;
}

forward SendMSG();
// forward to send the random messages
public SendMSG()
// new public for send the random messages
{
new randMSG = random(sizeof(RandomMSG));
// new randMSG = the random messages that we write
SendClientMessageToAll(YELLOW, RandomMSG[randMSG]);
// will send the random messages
}

/// 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)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
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)
{
new name[MAX_PLAYER_NAME], str[128];
// new variable called "name"
GetPlayerName(playerid,name,sizeof(name));
// get player name
format(str, sizeof(str), "Welcome %s to "#X" server v0.3z", name);
SendClientMessage(playerid, YELLOW, str);
// will send player welcome message
if(fexist(Path(playerid)))
// check the player registered or not
{
INI_ParseFile(Path(playerid),"loadaccount_user", .bExtra = true, .extra = playerid);
// load user data
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Prihlašeni","Vitej Zpět Tvuj Nick Je registrovan. \nVlož Sve Heslo A Klikni Přihlasit","Přihlasit","Odejit");
// if they registered, show login dialog
}
else
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Vitej.\nZadej Sve Heslo Ktere Nikomu Nerěkneš A Klikni Registrovat.","Registrovat","Odejit");
// if they not register, show register dialog
return 1;
}
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)
{
new INI:file = INI_Open(Path(playerid));
// open their file
INI_SetTag(file,"Player's Data");
// set the title in player dile
INI_WriteInt(file,"AdminLevel",pInfo[playerid][Adminlevel]);
// get latest adminlevel
INI_WriteInt(file,"VIPLevel",pInfo[playerid][VIPlevel]);
// same as above
INI_WriteInt(file,"Money",GetPlayerMoney(playerid));
// same as above
INI_WriteInt(file,"Scores",GetPlayerScore(playerid));
// same as above
INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
// same as above
INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
// same as above
INI_Close(file);
// close file
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)
{
pInfo[killerid][Kills]++;
// will add 1 kill to the killer
pInfo[playerid][Deaths]++;
// will add 1 death to the dead player
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[])
{

#if USE_ZCMD_COMMANDS == true
// if u make it true on top of the script
}
CMD:kill(playerid, params[])
// the cmd is /kill
{
if(GetPlayerMoney(playerid) <1000) return SendClientMessage(playerid,RED, "ERROR: You don't have $1000 !");
// if player money below 1000 then it will send player message
SetPlayerHealth(playerid, 0.0);
// set player health to 0/die
SendClientMessage(playerid, RED, "You just killed yourself");
// send player message
SendClientMessageToAll(RED, "Someone using /kill and kill him/herself and paid $1000 !");
// send message to all player in server
GivePlayerMoney(playerid, -1000);
// minus 1000 from player money
return 1;
}
CMD:heal(playerid, params[])
// the cmd is /heal
{
if(GetPlayerMoney(playerid) <500) return SendClientMessage(playerid,RED, "ERROR: You don't have $500 !");
// if player money below 500 then it will send player message
SetPlayerHealth(playerid, 100.0);
// set player health to 100/full
SendClientMessage(playerid, RED, "You just healed yourself");
// send player message
SendClientMessageToAll(RED, "Someone using /heal and heal him/herself and paid $500 !");
// send message to all player in server
GivePlayerMoney(playerid, -500);
// minus 500 from player money
return 1;
}
CMD:spawnme(playerid, params[])
// the cmd is /spawnme
{
SpawnPlayer(playerid);
// spawn player
SendClientMessage(playerid, RED, "You have been spawned");
// send player message
return 1;
}
CMD:kickme(playerid, params[])
// the cmd is /kickme
{
SendClientMessageToAll(RED, "1 of the player has been kicked | Reason: He/She want it");
// send player message
Kick(playerid);
// kick player
return 1;
}
CMD:godon(playerid, params[])
// the cmd is /godon
{
if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, RED,"ERROR: You are'nt Rcon Admin");
// check if the player is rcon admin or not
// if not it will send message
SetPlayerHealth(playerid, 99999999999.0);
// set player health to infinite
SetPlayerArmour(playerid, 99999999999.0);
// set player armour to infinite
SendClientMessageToAll(RED, "Rcon Admin has turned on his God Mode");
// send message to all player in server
return 1;
}
CMD:godoff(playerid, params[])
// the cmd is /godoff
{
if(IsPlayerAdmin(playerid)) return SendClientMessage(playerid, RED,"ERROR: You are'nt Rcon Admin");
// check if the player is rcon admin or not
// if not it will send message
SetPlayerHealth(playerid, 100.0);
// set player health to 100/full
SetPlayerArmour(playerid, 100.0);
// set player armour to 100/full
SendClientMessageToAll(RED, "Rcon Admin has turned off his God Mode");
// send message to all player in server
return 1;
}

/// 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[])
{
if(dialogid == DIALOG_REGISTER)
// if dialog id is register dialog
{
if(!response) return Kick(playerid);
// if they click 2nd button, then automatically they will be kicked
if(response)
// if they click 1st button
{
if(!strlen(inputtext))
// if they didnt put password
{
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Welcome! This account is not registered.\nEnter your own password to create a new account.\nPlease enter the password!","Register","Quit");
// show register dialog
return 1;
}
// if they succesfull put their new password
new hashpass[129];
// new variable for hashing
WP_Hash(hashpass,sizeof(hashpass),inputtext);
// whirlpool will has their password
new INI:file = INI_Open(Path(playerid));
// open new file to save their data
INI_SetTag(file,"Player's Data");
// set title in the player data file
INI_WriteString(file,"Password",hashpass);
// this will right the hashed password
INI_WriteInt(file,"AdminLevel",0);
// set his admin level to 0 when he registered
INI_WriteInt(file,"VIPLevel",0);
// same like above
INI_WriteInt(file,"Money",0);
// same like above
INI_WriteInt(file,"Scores",0);
// same like above
INI_WriteInt(file,"Kills",0);
// same like above
INI_WriteInt(file,"Deaths",0);
// same like above
INI_Close(file);
// will close file
SendClientMessage(playerid,YELLOW,"You have been successfully registered");
// send player message that they sucessfully registered
}
}
if(dialogid == DIALOG_LOGIN)
// if dialog id is dialog login
{
if(!response) return Kick(playerid);
// if they click 2nd button, then automatically they will be kicked
if(response)
// if they kicked 1st button
{
new hashpass[129];
// new variable to hashing
WP_Hash(hashpass,sizeof(hashpass),inputtext);
// whirlpool will hash their password
if(!strcmp(hashpass,pInfo[playerid][Pass]))
// if they insert correct password
{
INI_ParseFile(Path(playerid),"loadaccount_user",.bExtra = true, .extra = playerid);
// this will load player data
SetPlayerScore(playerid,pInfo[playerid][Scores]);
// will set his score to the score in their files
GivePlayerMoney(playerid,pInfo[playerid][Money]);
// same as above
SendClientMessage(playerid,YELLOW,"Welcome back! You have successfully logged in");
// send player message that they have succesfully login
}
else
// if they put the wrong password
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Welcome back. This account is registered. \nInsert your password to login to your account.\nIncorrect password!","Login","Quit");//We will tell to them that they've entered an incorrect password
// show login dialog
return 1;
}
}
}
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;
}
#endif

 

Link to comment
Share on other sites

2 odpovědí na tuto otázku

Recommended Posts

  • 0

Pozici uložíš takto:

new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid, X, Y, Z);
INI_WriteFloat(file,"X", X);
INI_WriteFloat(file,"Y", Y);
INI_WriteFloat(file,"Z", Z);

A načteš například takto:

new Float:X, Float:Y, Float:Z;
INI_Float("X", X);
INI_Float("Y", Y);
INI_Float("Z", Z);
SetPlayerPos(playerid, X, Y, Z);
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...