Skripta koju koristim: EGRPG FINAL moj neki edit u pokusaju
Detaljan opis problema: Zanima me kako da napravim vip system a pogotovu tu varijablu, znam ono kod enum Info da savim pVip e al sta da radim posle s tim sta da stavljam gde i kako, kako komande da pravim, to mi nije jasno...
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
Citat: |LZ| Bugi poslato Mart 29, 2013, 18:10:18 POSLE PODNE
Skripta koju koristim: EGRPG FINAL moj neki edit u pokusaju
Detaljan opis problema: Zanima me kako da napravim vip system a pogotovu tu varijablu, znam ono kod enum Info da savim pVip e al sta da radim posle s tim sta da stavljam gde i kako, kako komande da pravim, to mi nije jasno...
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
Koji sistem spremanja koristš da ti napravim primjer:
Npr. koristiš ga sa varijablom koju uzmeš,mi ćemo uzeti pVip.COMMAND:fixveh(playerid, params[])
{
if(PlayerInfo[playerid][pVip] < 1) return SCM(playerid, 4, "Samo Vip lvl 1 i vise."); // Znaci ovu komandu moze koristiti samo VIP LEVEL 1,2,3,4,5,6,7 .. sve do kraja dok ga ne ogranicis.
// Umjesto toga mozes staviti druge funkcije,reci koju da ti pojasnim komandu npr ?
if(IsPlayerInAnyVehicle(playerid))
{
RepairVehicle(GetPlayerVehicleID(playerid));
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
SendClientMessage(playerid, COLOR_WHITE, "Popravio si vozilo.");
}
return 1;
}
npr. Chat:COMMAND:vip(playerid, params[])
{
new string[160];
if(!(PlayerInfo[playerid][pVip] >= 1)) return SCM(playerid, 4, "Samo VIP");
if(isnull(params)) return SCM(playerid, 3, "Koristi: /vip [text]");
GetPlayerName(playerid,sendername,sizeof(sendername));
sendername[strfind(sendername,"_")] = ' ';
format(string,160,"VipChat - %s (Lvl %d): (( %s ))",sendername,PlayerInfo[playerid][pVip],params);
SendVipMessage(COLOR_WHITE, string);
return 1;
}
stock SendVipMessage( color, string[] )
{
foreach (Player,i)
{
if( PlayerInfo[ i] [ pVip ] > 0 )
{
SendClientMessage( i, color, string );
}
}
return 1;
}
Postavljanje vip-a.
COMMAND:makevip(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1338) return SCM(playerid, 4, "Samo admin moze ovo korsitit"); // samo admin 1338 moze psotaviti vipa
new victimname[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], viplvl, id; // definiramo varijable koje koristimo u cmd
if (sscanf(params, "ui", id, viplvl)) return SCM(playerid, 4, "Koristi: /makevip [playerid] [lvl]"); // Znaci sta treba ukucati
if (id == INVALID_PLAYER_ID) return SCM(playerid, 4, "Taj igrac je off"); // ako je igrac off
if (viplvl > 4 || viplvl < 0) return SendClientMessage(playerid, COLOR_WHITE,"Pogresan level vipa."); // Znaci ovime definiras da imas samo 4 lvl-a za VIPA
PlayerInfo[id][pVip] = viplvl; // Postaviš mu level koji upišeš od 0-4
GetPlayerName(id, victimname, sizeof(victimname)); // Uzimas ime od osobe kojoj postavis
GetPlayerName(playerid, adminname, sizeof(adminname)); // Uzimas ime od admina koji postavlja
new str[128]; // definiras string
format(str,128,"Admin %s ti je postavio igracu %s vip level na %i",adminname,victimname,viplvl); // string koji salje poruku da mu je postavljen
SendClientMessage(playerid,COLOR_WHITE,str); // salje mu poruku
format(str, sizeof(str), "Administrator %s je postavio igracu %s vip Level na %i",adminname,victimname,viplvl); // string tko je sta postavio
SendAdminMessage(COLOR_WHITE,str); // salje poruku adminima,Prilagodis si po varijabli ako imas ako nemas korsiti stock dolje
return 1;
}
stock SendAdminMessage( color, string[] )
{
foreach (Player,i)
{
if( PlayerInfo[ i] [ pAdmin ] > 0 )
{
SendClientMessage( i, color, string );
}
}
return 1;
}
E brate al samo meni nesto ovaj mod nece sa ZCMD, a i meni je lakse, to onaj Faris nesto zezno xD salim se, al ja nemam uopste varijablu ja ocu da napravim a nzm kako :D
Evo onda u YINI:
U PlayerInfo dodaš:
pVip // definiras varijablu
Funckija iz koje ćeÅ¡ oÄitati varijablu:
function LoadUser_data(playerid,name[],value[])
{
INI_Int("Vip",PlayerInfo[playerid][pVip); // Zovemo ga pVip
return 1;
}
Funkcija di ćeš spremiti pVip varijablu za igraca:
function SaveAccountStats(playerid)
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Vip",PlayerInfo[playerid][pVip]);
INI_Close(File);
return 1;
}
Dialog kod registracije dodamo varijablu da upiše u datoteku igraca:
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Vip",0);
INI_Close(File);
ne treba ti tu mnogo matematike, odes pod enum pinfo napravis pVip
restartujes je pod onplayerconnect PlayerInfo[playerid][pVip] = 0;
i onda udaris komandu gde stavljas tu varijablu, i posle ako zelis da ti taj Vip ima neke odredjene privilegije dodajes tu varijablu kroz komande
Citat: Blaeks poslato Mart 29, 2013, 18:45:04 POSLE PODNE
ne treba ti tu mnogo matematike, odes pod enum pinfo napravis pVip
restartujes je pod onplayerconnect PlayerInfo[playerid][pVip] = 0;
i onda udaris komandu gde stavljas tu varijablu, i posle ako zelis da ti taj Vip ima neke odredjene privilegije dodajes tu varijablu kroz komande
Hvala obojici, a steta sto nema matematike posto mi dobro ide Hahhaha :D Ae fala