Elhoztam nektek egyik nem rég készített scriptemet és úgy gondoltam hogy publikálom ugyanis sokaknak jól jöhet.
Amit tudni kell a scriptről:Készítette: Tomasz
Készítési idő: 30 perc kb.
Ez a script arra szolgál hogy a játékon belül úgynevezett gang-eket tudjunk létrehozni. Be lehet állítani a gang-ek nevét, rangjainak nevét valamint a maximális rangot. Csináltam bele egy-két teszt parancsot amivel beletudjátok magatokat rakni a gang-ekbe, tudjátok állítani a rangotokat, le tudjátok kérni a gangek nevét valamint id-jét, és meg tudjátok nézni a rangokat. A script nem tökéletes pl.: néhány parancs nincs tökéletesen kidolgozva, de ettől függetlenül a script működik és használható.
FONTOS! A scriptfiles-ban hozzatok létre egy Gangs nevű mappát! Enélkül a script nem működőképes.
Letöltési linkek:A scripthez szükséges includeok, pluginok:
dini:
http://www.solidfiles.com/d/a8b1739b29/Dini.incsscanf2:
http://forum.sa-mp.com/showthread.php?t=120356zcmd:
http://forum.sa-mp.com/showthread.php?t=91354A scripthez a linkek:
Pastebin:
http://pastebin.com/2h0WpCqbSolidfiles:
http://www.solidfiles.com/d/13b52d0ccd/GANG.pwn
#include <a_samp>
#include <dini>
#include <sscanf2>
#include <zcmd>
#define MAX_GANGS 10
#define GANG_NAME 1000
#define GANG_RANG 1500
new str[256];
new pGang[MAX_PLAYERS];
new pRang[MAX_PLAYERS];
enum gang
{
ID,
Nev[256],
Rang1[256],
Rang2[256],
Rang3[256],
Rang4[256],
Rang5[256],
Rang6[256],
Rang7[256],
Rang8[256],
Rang9[256],
Rang10[256],
MaxRang
}
new GangInfo[MAX_GANGS][gang];
stock LoadGangs()
{
for(new i=1;i<MAX_GANGS;i++)
{
format(str,sizeof(str),\"/Gangs/%d.ini\",i);
if(fexist(str))
{
GangInfo[iD] = i;
GangInfo[Nev] = dini_Get(str,\"Nev\");
GangInfo[Rang1] = dini_Get(str,\"Rang1\");
GangInfo[Rang2] = dini_Get(str,\"Rang2\");
GangInfo[Rang3] = dini_Get(str,\"Rang3\");
GangInfo[Rang4] = dini_Get(str,\"Rang4\");
GangInfo[Rang5] = dini_Get(str,\"Rang5\");
GangInfo[Rang6] = dini_Get(str,\"Rang6\");
GangInfo[Rang7] = dini_Get(str,\"Rang7\");
GangInfo[Rang8] = dini_Get(str,\"Rang8\");
GangInfo[Rang9] = dini_Get(str,\"Rang9\");
GangInfo[Rang10] = dini_Get(str,\"Rang10\");
GangInfo[MaxRang] = dini_Int(str,\"MaxRang\");
}
}
printf(\"Gangek betoltve!\");
}
stock SaveGang(id)
{
format(str,sizeof(str),\"/Gangs/%d.ini\",id);
dini_Set(str,\"Nev\",GangInfo[id][Nev]);
dini_Set(str,\"Rang1\",GangInfo[id][Rang1]);
dini_Set(str,\"Rang2\",GangInfo[id][Rang2]);
dini_Set(str,\"Rang3\",GangInfo[id][Rang3]);
dini_Set(str,\"Rang4\",GangInfo[id][Rang4]);
dini_Set(str,\"Rang5\",GangInfo[id][Rang5]);
dini_Set(str,\"Rang6\",GangInfo[id][Rang6]);
dini_Set(str,\"Rang7\",GangInfo[id][Rang7]);
dini_Set(str,\"Rang8\",GangInfo[id][Rang8]);
dini_Set(str,\"Rang9\",GangInfo[id][Rang9]);
dini_Set(str,\"Rang10\",GangInfo[id][Rang10]);
dini_IntSet(str,\"MaxRang\",GangInfo[id][MaxRang]);
printf(\"A(z) %d-as/es ID-ju gang mentve lett!\",id);
}
stock BiggestGangID()
{
new num;
for(new i=1;i<MAX_GANGS;i++)
{
format(str,sizeof(str),\"/Gangs/%d.ini\",i);
if(fexist(str)) num = i;
}
return num;
}
main(){}
public OnPlayerConnect(playerid)
{
pRang[playerid] = 1;
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == GANG_NAME)
{
if(response)
{
if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid,GANG_NAME,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Min. 3 karakter hosszúságú kell hogy legyen a név.\",\"Tovább\",\"Mégse\");
format(str,sizeof(str),\"/Gangs/%d.ini\",BiggestGangID()+1);
dini_Create(str);
format(GangInfo[biggestGangID()][Nev],64,\"%s\",inputtext);
ShowPlayerDialog(playerid,GANG_RANG,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Írd be a gang maximum elérhető rangját.(Min.3 Max.10)\",\"Kész\",\"Mégse\");
}
}
if(dialogid == GANG_RANG)
{
if(response)
{
if(strval(inputtext) < 3 || strval(inputtext) > 10) return ShowPlayerDialog(playerid,GANG_RANG,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Minimum 3 és maximum 10 lehet!\",\"Kész\",\"Mégse\");
format(str,sizeof(str),\"/Gangs/%d.ini\",BiggestGangID()-1);
GangInfo[biggestGangID()][MaxRang] = strval(inputtext);
SaveGang(BiggestGangID());
LoadGangs();
}
else dini_Remove(str);
}
return 0;
}
CMD:creategang(playerid)
{
ShowPlayerDialog(playerid,GANG_NAME,DIALOG_STYLE_INPUT,\"Gang készítés\",\"Írd be a gang nevét!\",\"Tovább\",\"Mégse\");
return 1;
}
CMD:gangs(playerid)
{
for(new i=1;i<MAX_GANGS;i++)
{
format(str,sizeof(str),\"ID %d: %s\",i,GangInfo[Nev]);
SendClientMessage(playerid,-1,str);
}
return 1;
}
CMD:gangbe(playerid,params[])
{
new fk;
if(sscanf(params,\"d\",fk))return SendClientMessage(playerid,-1,\"HASZNÁLAT: /gangbe [iD]\");
pGang[playerid] = fk;
return 1;
}
CMD:rang(playerid,params[])
{
new rang;
if(sscanf(params,\"d\",rang))return SendClientMessage(playerid,-1,\"HASZNÁLAT: /rang [iD]\");
if(rang > GangInfo[pGang[playerid]][MaxRang])return SendClientMessage(playerid,-1,\"A rang amit beírtál magasabb mint a maximum elérhető rang!\");
pRang[playerid] = rang;
return 1;
}
CMD:myganginfo(playerid)
{
if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,\"Te nem vagy gangben!\");
format(str,sizeof(str),\"[iD %d] %s\",pGang[playerid],GangInfo[pGang[playerid]][Nev]);
SendClientMessage(playerid,-1,str);
if(pRang[playerid] == 1) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang1]);
if(pRang[playerid] == 2) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang2]);
if(pRang[playerid] == 3) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang3]);
if(pRang[playerid] == 4) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang4]);
if(pRang[playerid] == 5) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang5]);
if(pRang[playerid] == 6) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang6]);
if(pRang[playerid] == 7) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang7]);
if(pRang[playerid] == format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang8]);
if(pRang[playerid] == 9) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang9]);
if(pRang[playerid] == 10) format(str,sizeof(str),\"Rang: %s\",GangInfo[pGang[playerid]][Rang10]);
SendClientMessage(playerid,-1,str);
return 1;
}
CMD:gangrangs(playerid)
{
if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,\"Te nem vagy gangben!\");
format(str,sizeof(str),\"Rang 1: %s\",GangInfo[pGang[playerid]][Rang1]);
SendClientMessage(playerid,-1,str);
format(str,sizeof(str),\"Rang 2: %s\",GangInfo[pGang[playerid]][Rang2]);
SendClientMessage(playerid,-1,str);
if(GangInfo[pGang[playerid]][MaxRang] >= 3)
{
format(str,sizeof(str),\"Rang 3: %s\",GangInfo[pGang[playerid]][Rang3]);
SendClientMessage(playerid,-1,str);
}
if(GangInfo[pGang[playerid]][MaxRang] >= 4)
{
format(str,sizeof(str),\"Rang 4: %s\",GangInfo[pGang[playerid]][Rang4]);
SendClientMessage(playerid,-1,str);
}
if(GangInfo[pGang[playerid]][MaxRang] >= 5)
{
format(str,sizeof(str),\"Rang 5: %s\",GangInfo[pGang[playerid]][Rang5]);
SendClientMessage(playerid,-1,str);
}
if(GangInfo[pGang[playerid]][MaxRang] >= 6)
{
format(str,sizeof(str),\"Rang 6: %s\",GangInfo[pGang[playerid]][Rang6]);
SendClientMessage(playerid,-1,str);
}
if(GangInfo[pGang[playerid]][MaxRang] >= 7)
{
format(str,sizeof(str),\"Rang 7: %s\",GangInfo[pGang[playerid]][Rang7]);
SendClientMessage(playerid,-1,str);
}
if(GangInfo[pGang[playerid]][MaxRang] >=
{
format(str,sizeof(str),\"Rang 8: %s\",GangInfo[pGang[playerid]][Rang8]);
SendClientMessage(playerid,-1,str);
}
if(GangInfo[pGang[playerid]][MaxRang] >= 9)
{
format(str,sizeof(str),\"Rang 9: %s\",GangInfo[pGang[playerid]][Rang9]);
SendClientMessage(playerid,-1,str);
}
if(GangInfo[pGang[playerid]][MaxRang] == 10)
{
format(str,sizeof(str),\"Rang 10: %s\",GangInfo[pGang[playerid]][Rang10]);
SendClientMessage(playerid,-1,str);
}
return 1;
}
CMD:gangrang(playerid,params[])
{
if(pGang[playerid] == 0)return SendClientMessage(playerid,-1,\"Te nem vagy gangben!\");
new rang,neve[256];
if(sscanf(params,\"ds[256]\",rang,neve))return SendClientMessage(playerid,-1,\"/gangrang [RANG] [NEVE]\");
if(rang == 1)GangInfo[pGang[playerid]][Rang1] = neve;
if(rang == 2)GangInfo[pGang[playerid]][Rang2] = neve;
if(rang == 3)GangInfo[pGang[playerid]][Rang3] = neve;
if(rang == 4)GangInfo[pGang[playerid]][Rang4] = neve;
if(rang == 5)GangInfo[pGang[playerid]][Rang5] = neve;
if(rang == 6)GangInfo[pGang[playerid]][Rang6] = neve;
if(rang == 7)GangInfo[pGang[playerid]][Rang7] = neve;
if(rang == 8)GangInfo[pGang[playerid]][Rang8] = neve;
if(rang == 9)GangInfo[pGang[playerid]][Rang9] = neve;
if(rang == 10)GangInfo[pGang[playerid]][Rang10] = neve;
SaveGang(pGang[playerid]);
return 1;
}