üdv,tegnap nézegettem a Kérdések,Segítség fórumrészt,Láttam h sokan kérik az autospawnt,meg ilyen apró cuccokat,ezért elkészítettem 1 alap játékmódot.Használjátok egészséggel!
//Include beágyazása
//-----------------------------|
#include <a_samp>// |
#include <YSI\\y_ini>// |
#include <dudb>// |
#include <sscanf2>// |
#include <zcmd>// |
#include <streamer>// |
//-----------------------------|
#pragma unused ret_memcpy
#define PATH \"/Karakterek/%s.ini\"
#define COLOR_KICK 0xa200ffAA //lila
#define piros 0xf50a25AA
#define feher 0xffffffAA
#define kek 0x4848f2AA
#define zold 0x13f025AA
new bejelentkezve[MAX_PLAYERS];
#define SCM SendClientMessage
enum Karakter
{
pPass, //jelszó
pCash,//Pénz
pAdmin//AdminSzint
}
new JatekosInfo[MAX_PLAYERS][Karakter];
//AdminVáltozók
new AdminDuty[MAX_PLAYERS];
new PMEK[MAX_PLAYERS];
new AdminSeged[MAX_PLAYERS];
//DIALOG DEFINÁLÁSA:
//--------------------------|
#define DIALOG_REG 1//------|
#define DIALOG_BELEP 2//----|
//--------------------------|
forward OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid);
main()
{
}
public OnGameModeInit()
{
SetGameModeText(\"Szerver Neve\");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
if(fexist(Jatekosadatok(playerid)))//\"fexist\" funkciót használjuk a fájl keresésére, hogy regisztrálva van e már a játékos aki csatlakozott.
{
INI_ParseFile(Jatekosadatok(playerid), \"Adattoltes_%s\", .bExtra = true, .extra = playerid);
ShowPlayerDialog(playerid, DIALOG_BELEP, DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Írd be a jelszód a belépéshez\",\"Belép\",\"Bezár\");
}
else//ha nincs regisztrálva
{
ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT,\"Regisztráció folyamatban\",\"Írj be egy jelszót a regisztrációhoz!\",\"Regisztrálás\",\"Bezár\");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(Jatekosadatok(playerid));
INI_SetTag(File,\"data\");
INI_WriteInt(File,\"Cash\",JatekosInfo[playerid][pCash]);
INI_WriteInt(File,\"Admin\",JatekosInfo[playerid][pAdmin]);
bejelentkezve[playerid] = 0;
PMEK[playerid] = 0;
INI_Close(File);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(bejelentkezve[playerid] == 0)
{
printf(\"%s Kickellve lett,Indok:Bejelentkezés elött spawn\",Jatekosadatok(playerid));
SendClientMessage(playerid,COLOR_KICK,\"Elsõnek bekéne jelentkezni,nemgondolod?\");
Kick(playerid);
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
SetPlayerMoney(playerid,0);//ha meghal elveszi az összes kp-ját
ResetPlayerWeapons(playerid);//ha meghal elveszi a fegyvereit
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
//adminrendszer v0.1
CMD:makeadmin(playerid,params[])
{
new ID,Adminszint;
if(bejelentkezve[playerid] == 1 || bejelentkezve [iD] == 1)
{
if(JatekosInfo[playerid][pAdmin]>=4)
{
if(sscanf(params,\"u\",ID,Adminszint))
{
new string[128];
format(string,sizeof(string),\"Kinevezted %s-t %i-s szintû Adminisztrátornak!\",Jatekosadatok(ID),Adminszint);
SCM(playerid,piros,string);
format(string,sizeof(string),\"Kinevezett téged %s Adminnak,Adminszint:%i!\",Jatekosadatok(playerid),Adminszint);
SCM(ID,piros,string);
JatekosInfo[iD][pAdmin] = Adminszint;
}return SCM(playerid,zold,\"Használat:/makeadmin [iD] [AdminSzint]\");
}return SCM(playerid,kek,\"Csakis Tulajdonos/Szkripter használhatja!\");
}return SCM(playerid,zold,\"Parancs használatához jelentkezz be!\");
}
CMD:asay(playerid,params[])
{
new string[128];
if(bejelentkezve[playerid] == 1)
{
if(JatekosInfo[playerid][pAdmin] >= 1 || AdminSeged[playerid] == 1)
{
if(sscanf(params,\"i\",string))
{
new arank[64];
if(AdminSeged[playerid] == 1) { arank = \"AdminSegéd\";}
if(JatekosInfo[playerid][pAdmin] == 1) { arank = \"Admin\"; }
else if(JatekosInfo[playerid][pAdmin] == 2) { arank = \"Haladó Admin\"; }
else if(JatekosInfo[playerid][pAdmin] == 3) { arank = \"Fõadmin\"; }
else if(JatekosInfo[playerid][pAdmin] == 4) { arank = \"Tulajdonos\"; }
else if(JatekosInfo[playerid][pAdmin] == 5) { arank = \"Szkripter\"; }
else { arank = \"Ismeretlen\"; }
format(string,sizeof(string),\"%s %s:%s\",arank,Jatekosadatok(playerid),string);
SendClientMessageToAll(piros,string);
}return SCM(playerid,zold,\"Használat:/asay [szöveg]\");
}return SCM(playerid,kek,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,zold,\"Parancs használatához jelentkezz be!\");
}
CMD:adminduty(playerid)
{
new string[128];
if(bejelentkezve[playerid] == 1)
{
if(JatekosInfo[playerid][pAdmin]>=1)
{
if(AdminDuty[playerid] == 0)
{
AdminDuty[playerid] = 1;
SetPlayerColor(playerid,piros);
format(string,sizeof(string),\"%s Adminszolgálatba lépett!\",Jatekosadatok(playerid));
SendClientMessageToAll(piros,string);
}
else
{
AdminDuty[playerid] = 0;
SetPlayerColor(playerid,feher);
format(string,sizeof(string),\"%s Kilépett adminszolgálatból,Mostmár ne zavard!\",Jatekosadatok(playerid));
SendClientMessageToAll(piros,string);
}
}return SCM(playerid,COLOR_KICK,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,COLOR_KICK,\"Parancs használatához elsõnek jelentkezz be!\");
}
CMD:pmek(playerid)
{
if(bejelentkezve[playerid] == 1)
{
if(JatekosInfo[playerid][pAdmin] >= 1)
{
if(AdminDuty[playerid] == 1)
{
if(PMEK[playerid] == 0)
{
PMEK[playerid] = 1;
SCM(playerid,kek,\"Mostantól nem kapsz több Privát üzenetet!\");
}
else
{
PMEK[playerid] = 0;
SCM(playerid,kek,\"Mostantól újra kapsz privát üzentet!\");
}
}return SCM(playerid,kek,\"Parancs használatához adminszolgálatba kell lenned!\");
}return SCM(playerid,COLOR_KICK,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,COLOR_KICK,\"Parancs használatához elsõnek jelentkezz be!\");
}
CMD:pm(playerid,params[])
{
new id,string[128];
new szoveg;
if(bejelentkezve[playerid] == 1)
{
if(AdminDuty[id] == 1)
{
if(PMEK[playerid] == 0)
{
if(sscanf(params,\"ui\",id,szoveg))
{
format(string,sizeof(string),\"%s Panasza:%s\",Jatekosadatok(playerid),szoveg);
SendClientMessage(id,piros,string);
SendClientMessage(playerid,zold,\"Visszajelzés:Panasz elküldve,Kérlek várj....\");
}return SCM(playerid,zold,\"Használat:/pm [AdminID][Panaszod]\");
}return SCM(playerid,zold,\"Privát üzenet blokkolva!\");
}return SCM(playerid,COLOR_KICK,\"Csak adminszolgálatosnak írhatsz!\");
}return SCM(playerid,COLOR_KICK,\"Parancs használatához jelentkezz be!\");
}
CMD:goto(playerid,params[])
{
new string[128],id,Float:x,Float:y,Float:z;
if(bejelentkezve[playerid] == 1)
{
if(JatekosInfo[playerid][pAdmin]>= 2)
{
if(sscanf(params,\"u\",id))
{
GetPlayerPos(id,Float:x,Float:y,Float:z);
SetPlayerPos(playerid,Float:x,Float:y,Float:z);
format(string,sizeof(string),\"Elteleportáltál %s-hoz!\",Jatekosadatok(id));
SCM(playerid,piros,string);
format(string,sizeof(string),\"Admin:%s odateleportált hozzád!\",Jatekosadatok(playerid));
SCM(id,piros,string);
}return SCM(playerid,COLOR_KICK,\"Használat:/goto [JátékosID]\");
}return SCM(playerid,piros,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,zold,\"Parancs használatához jelentkezz be!\");
}
CMD:get(playerid,params[])
{
new string[128],id,Float:x,Float:y,Float:z;
if(bejelentkezve[playerid] == 1)
{
if(JatekosInfo[playerid][pAdmin]>= 2)
{
if(sscanf(params,\"u\",id))
{
GetPlayerPos(playerid,Float:x,Float:y,Float:z);
SetPlayerPos(id,Float:x,Float:y,Float:z);
format(string,sizeof(string),\"Magadhoz teleportáltad %s-t!\",Jatekosadatok(id));
SCM(playerid,piros,string);
format(string,sizeof(string),\"Admin:%s Elteleportált hozzád!\",Jatekosadatok(playerid));
SCM(id,piros,string);
}return SCM(playerid,COLOR_KICK,\"Használat:/goto [JátékosID]\");
}return SCM(playerid,piros,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,zold,\"Parancs használatához jelentkezz be!\");
}
CMD:kick(playerid,params[])
{
new id,string[128],indok;
if(bejelentkezve[playerid] == 1)
{
if(JatekosInfo[playerid][pAdmin] >= 1 || AdminSeged[playerid] >= 1)
{
if(sscanf(params,\"ui\",id,indok))
{
format(string,sizeof(string),\"%s Kickellve Lett %s általl,Indok:%i\",Jatekosadatok(id),Jatekosadatok(playerid));
SendClientMessageToAll(piros,string);
Kick(id);
}return SCM(playerid,COLOR_KICK,\"Használat: /kick[JátékosID][indok]\");
}return SCM(playerid,COLOR_KICK,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,zold,\"Parancs használatához jelentkezz be!\");
}
CMD:ban(playerid,params[])
{
new id,string[128],indok;
if(bejelentkezve[playerid] == 1)
{
if(JatekosInfo[playerid][pAdmin] >= 2)
{
if(sscanf(params,\"ui\",id,indok))
{
format(string,sizeof(string),\"%s Bannolva lett %s általl,Indok:%i\",Jatekosadatok(id),Jatekosadatok(playerid));
SendClientMessageToAll(piros,string);
Ban(id);
}return SCM(playerid,COLOR_KICK,\"Használat: /ban[JátékosID][indok]\");
}return SCM(playerid,COLOR_KICK,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,zold,\"Parancs használatához jelentkezz be!\");
}
CMD:adminseged(playerid,params[])
{
new ID,string[128];
if(bejelentkezve[playerid] == 1 || bejelentkezve [iD] == 1)
{
if(sscanf(params,\"u\",ID))
{
if(JatekosInfo[playerid][pAdmin] >= 2)
{
if(AdminSeged[iD] == 0)
{
AdminSeged[iD] = 1;
format(string,sizeof(string),\"Kinevezted %s-t Adminsegédnek!\",Jatekosadatok(ID));
SendClientMessage(playerid,piros,string);
format(string,sizeof(string),\"Admin %s Kinevezett téged Adminsegédnek!\",Jatekosadatok(playerid));
SendClientMessage(playerid,piros,string);
}
if(AdminSeged[iD] == 1)
{
AdminSeged[iD] = 0;
format(string,sizeof(string),\"Elvetted %s AdminSegéd jogát!\",Jatekosadatok(ID));
SendClientMessage(playerid,piros,string);
format(string,sizeof(string),\"Admin %s Elvette az adminsegéd jogodat!\",Jatekosadatok(playerid));
SendClientMessage(playerid,piros,string);
}
}return SCM(playerid,piros,\"Nem vagy jogosult a parancs használatához!\");
}return SCM(playerid,piros,\"Használat:/adminseged[Játékos ID]\");
}return SCM(playerid,piros,\"Bejelentkezés szükséges!\");
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
if(AdminDuty[damagedid] == 1)
{
new string[128];
SCM(playerid,piros,\"ADMINSZOLI FIGYELÕ!!\");
format(string,sizeof(string),\"%s rádlõtt,Ezért le lett fagyasztva!\",Jatekosadatok(playerid));
SCM(damagedid,piros,string);
SetPlayerHealth(damagedid,100);
TogglePlayerControllable(playerid,true);
SCM(playerid,COLOR_KICK,\"a f***T,Adminszolgálatost nem lõsz!\");
}
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch( dialogid )
{
case DIALOG_REG:
{
if (!response) return Kick(playerid);
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REG, DIALOG_STYLE_INPUT, \"Regisztráció folyamatban\",\"Helytelen jelszót írtál be.\\nÍrj be egy jelszót a regisztrációhoz\",\"Regisztrálás\",\"Bezár\");
new INI:File = INI_Open(Jatekosadatok(playerid));
INI_SetTag(File,\"data\");
INI_WriteInt(File,\"Password\",udb_hash(inputtext));
INI_WriteInt(File,\"Cash\",0);
INI_WriteInt(File,\"Admin\",0);
INI_Close(File);
JatekosInfo[playerid][pCash]=25000;
}
}
case DIALOG_BELEP:
{
if ( !response ) return Kick ( playerid );
if( response )
{
if(udb_hash(inputtext) == JatekosInfo[playerid][pPass])
{
INI_ParseFile(Jatekosadatok(playerid), \"Adattoltes_%s\", .bExtra = true, .extra = playerid); //betöltjük a játékos adatait a fájlból.
}
else
{
ShowPlayerDialog(playerid, DIALOG_BELEP, DIALOG_STYLE_PASSWORD,\"Bejelentkezés\",\"Helytelen jelszó.\\nÍrd be a jelszód a belépéshez.\",\"Belép\",\"Bezár\");
}
return 1;
}
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
forward Adattoltes_data(playerid,name[],value[]);
public Adattoltes_data(playerid,name[],value[])
{
INI_Int(\"Password\",JatekosInfo[playerid][pPass]);
INI_Int(\"Cash\",JatekosInfo[playerid][pCash]);
INI_Int(\"Admin\",JatekosInfo[playerid][pAdmin]);
bejelentkezve[playerid] = 1;
PMEK[playerid] = 0;
AdminDuty[playerid] = 0;
AdminSeged[playerid] = 0;
SetPlayerColor(playerid,feher);
return 1;
}
stock Jatekosadatok(playerid)
{
new string[128],jatekosnev[MAX_PLAYER_NAME];
GetPlayerName(playerid,jatekosnev,sizeof(jatekosnev));
format(string,sizeof(string),PATH,jatekosnev);
return string;
}
a_samp.inc
YSI
DUDB
ZCMD
SSCANF
STREAMER