Skripta koju koristim: EGRP
Detaljan opis problema: Kako da napravim da nebude vise /aduty da napravim kad je Admin na duznosti da mu je komanda /aon a kad oce off /aoff
Dio skripte:
Citat///////////////////////////////////////////////////////
CMD:aduty(playerid, params[])
{
//#pragma unused help
//#pragma unused params
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,"CFRP | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, -1, ""SPLAVA"[CFRP] "BELA"Samo Admini!");
new string[256];
if(AdminDuty[playerid] == 0)
{
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}je na duznosti, za pomoc kucajte {F81414}/report! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
AdminDuty[playerid] = 1;
SetPlayerColor(playerid,CRVENAADUTY);
GivePlayerWeapon(playerid, 4, 1);
GivePlayerWeapon(playerid, 24, 9999);
SetPlayerArmour(playerid, 99.0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerAttachedObject(playerid, 3, 373, 1, 0.286006, -0.034657, -0.158132, 67.128456, 21.916156, 33.972290, 1.000000, 1.000000, 1.000000);
SetPlayerAttachedObject(playerid, NOVAC_SLOT, 3, 1550, 1, 0.1, -0.3, 0, 0, 40, 0, 1, 1, 1);
SetPlayerAttachedObject(playerid, 8, 19078, 1, 0.311434, -0.063826, -0.161611, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); // TheParrot1 - papag
}
else if(AdminDuty[playerid] == 1)
{
SetPlayerArmour(playerid, 0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerColor(playerid,BELA2);
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}vise nije na duznosti! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
AdminDuty[playerid] = 0;
RemovePlayerAttachedObject(playerid, 8);
}
return 1;
}
//////////////////////////////////////////////////////
CMD:aon(playerid, params[])
{
//#pragma unused help
//#pragma unused params
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,"CFRP | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, -1, ""SPLAVA"[CFRP] "BELA"Samo Admini!");
if(AdminDuty[playerid] == 1) return SCM(playerid, -1, "Vec si na duznosti);
new string[256];
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}je na duznosti, za pomoc kucajte {F81414}/report! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
AdminDuty[playerid] = 1;
SetPlayerColor(playerid,CRVENAADUTY);
GivePlayerWeapon(playerid, 4, 1);
GivePlayerWeapon(playerid, 24, 9999);
SetPlayerArmour(playerid, 99.0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerAttachedObject(playerid, 3, 373, 1, 0.286006, -0.034657, -0.158132, 67.128456, 21.916156, 33.972290, 1.000000, 1.000000, 1.000000);
SetPlayerAttachedObject(playerid, NOVAC_SLOT, 3, 1550, 1, 0.1, -0.3, 0, 0, 40, 0, 1, 1, 1);
SetPlayerAttachedObject(playerid, 8, 19078, 1, 0.311434, -0.063826, -0.161611, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); // TheParrot1 - papag
return 1;
}
CMD:aoff(playerid, params[])
{
//#pragma unused help
//#pragma unused params
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,"CFRP | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, -1, ""SPLAVA"[CFRP] "BELA"Samo Admini!");
if(AdminDuty[playerid] == 0) return SCM(playerid, -1, "Moras prvo na duznost");
new string[256];
SetPlayerArmour(playerid, 0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerColor(playerid,BELA2);
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}vise nije na duznosti! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
AdminDuty[playerid] = 0;
RemovePlayerAttachedObject(playerid, 8);
return 1;
}
Citat: Vlado_Plavsic aka Plavsa poslato Decembar 25, 2013, 20:37:04 POSLE PODNE
CMD:aon(playerid, params[])
{
//#pragma unused help
//#pragma unused params
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,"CFRP | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, -1, ""SPLAVA"[CFRP] "BELA"Samo Admini!");
if(AdminDuty[playerid] == 1) return SCM(playerid, -1, "Vec si na duznosti);
new string[256];
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}je na duznosti, za pomoc kucajte {F81414}/report! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
AdminDuty[playerid] = 1;
SetPlayerColor(playerid,CRVENAADUTY);
GivePlayerWeapon(playerid, 4, 1);
GivePlayerWeapon(playerid, 24, 9999);
SetPlayerArmour(playerid, 99.0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerAttachedObject(playerid, 3, 373, 1, 0.286006, -0.034657, -0.158132, 67.128456, 21.916156, 33.972290, 1.000000, 1.000000, 1.000000);
SetPlayerAttachedObject(playerid, NOVAC_SLOT, 3, 1550, 1, 0.1, -0.3, 0, 0, 40, 0, 1, 1, 1);
SetPlayerAttachedObject(playerid, 8, 19078, 1, 0.311434, -0.063826, -0.161611, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); // TheParrot1 - papag
return 1;
}
CMD:aoff(playerid, params[])
{
//#pragma unused help
//#pragma unused params
if(UlogovanProvera[playerid] == 0) return SCM(playerid,-1,"CFRP | "CRVENA"Moras se ulogovati da bi koristio ovu komandu!");
if(PlayerInfo[playerid][pAdmin] == 0) return SCM(playerid, -1, ""SPLAVA"[CFRP] "BELA"Samo Admini!");
if(AdminDuty[playerid] == 0) return SCM(playerid, -1, "Moras prvo na duznost");
new string[256];
SetPlayerArmour(playerid, 0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerColor(playerid,BELA2);
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}vise nije na duznosti! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
AdminDuty[playerid] = 0;
RemovePlayerAttachedObject(playerid, 8);
return 1;
}
zasto 256 cellova kreirati kad je SA:MP chat maksimalan output 128 karaktera
new string[256]; // 256 cellova * 4 bajta po jednom cellu = 1024 bajta - 1KB -.-
new string[128 char]; // 128 bajtova
Dobim erore
C:\Users\Mario\Desktop\MTA - marek\Cimer fraj\gamemodes\FarkiasRP.pwn(30177) : warning 217: loose indentation
C:\Users\Mario\Desktop\MTA - marek\Cimer fraj\gamemodes\FarkiasRP.pwn(35118) : warning 217: loose indentation
C:\Users\Mario\Desktop\MTA - marek\Cimer fraj\gamemodes\FarkiasRP.pwn(35119) : error 037: invalid string (possibly non-terminated string)
C:\Users\Mario\Desktop\MTA - marek\Cimer fraj\gamemodes\FarkiasRP.pwn(35119) : error 017: undefined symbol "Vec"
C:\Users\Mario\Desktop\MTA - marek\Cimer fraj\gamemodes\FarkiasRP.pwn(35119) : error 017: undefined symbol "si"
C:\Users\Mario\Desktop\MTA - marek\Cimer fraj\gamemodes\FarkiasRP.pwn(35119) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
jao kako si ti lijen bre pa ljudi ti sve nacrtaju a ti svaki warning stavljas
losse identition - poravnaj kod
if(AdminDuty[playerid] == 1) return SCM(playerid, -1, "Vec si na duznosti);
na ovoj liniji fali "
if(AdminDuty[playerid] == 1) return SCM(playerid, -1, "Vec si na duznosti");
@maCHine65535, nisam ni gledao, samo sam razdvajao u 2 komande.
InaÄe sam fanatik za Äuvanje memorije i optimizaciju i dok radim sa stringom u C++ nema curenja memorije. 8)
Rijesio sam se waringa
E i neoj kod svake komande provjeravat jel ulogovan, jednostavno provjeri kad igrac upise bilo koji cmdtext, tj kad se poziva OnPlayerCommand(text/performed/recieved)
Primjer:
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
if( !UlogovanProvera[ playerid ] )
return SendClientMessage(playerid, -1, "Nisi ulogovan ! ");
}
Citat: Vlado_Plavsic aka Plavsa poslato Decembar 25, 2013, 20:58:24 POSLE PODNE
@maCHine65535, nisam ni gledao, samo sam razdvajao u 2 komande.
InaÄe sam fanatik za Äuvanje memorije i optimizaciju i dok radim sa stringom u C++ nema curenja memorije. 8)
Izvinjavam se, mislio sam da si mu ti postavio komandu, moja greska.
CMD:aon(playerid, params[])
{
#pragma unused help
#pragma unused params
if(!PlayerInfo[playerid][pAdmin]) return SCM(playerid, -1, ""SPLAVA"[CFRP] "BELA"Samo Admini!");
if(AdminDuty[playerid]) return SCM(playerid, -1, "Vec si na duznosti");
new string[128];
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}je na duznosti, za pomoc kucajte {F81414}/report! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
SetPlayerColor(playerid,CRVENAADUTY);
GivePlayerWeapon(playerid, 4, 1);
GivePlayerWeapon(playerid, 24, 9999);
SetPlayerArmour(playerid, 99.0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerAttachedObject(playerid, 3, 373, 1, 0.286006, -0.034657, -0.158132, 67.128456, 21.916156, 33.972290, 1.000000, 1.000000, 1.000000);
SetPlayerAttachedObject(playerid, NOVAC_SLOT, 3, 1550, 1, 0.1, -0.3, 0, 0, 40, 0, 1, 1, 1);
SetPlayerAttachedObject(playerid, 8, 19078, 1, 0.311434, -0.063826, -0.161611, 0.000000, 0.000000, 0.000000, 1.000000, 1.000000, 1.000000 ); // TheParrot1 - papag
return AdminDuty[playerid] = 1;
}
CMD:aoff(playerid, params[])
{
#pragma unused help
#pragma unused params
if(!PlayerInfo[playerid][pAdmin]) return SCM(playerid, -1, ""SPLAVA"[CFRP] "BELA"Samo Admini!");
if(!AdminDuty[playerid]) return SCM(playerid, -1, "Moras prvo na duznost");
SetPlayerArmour(playerid, 0);
g_SetPlayerHealth(playerid, 99.0);
SetPlayerColor(playerid,BELA2);
new string[128];
format(string,sizeof(string),"{F3FF02}(( {FFFFFF}Administrator {F3FF02}%s {FFFFFF}vise nije na duznosti! {F3FF02}))",GetName(playerid));
AdminGameMaster(-1,string);
RemovePlayerAttachedObject(playerid, 8);
return AdminDuty[playerid] = 0;
}
KAk da jos napravim da se na mapi vidi crvena tocka kada je admin na duty
i kada admin pise IC chetu da mu je ime crveno
http://wiki.sa-mp.com/wiki/SetPlayerColor
Ok a kako da ovo napravim kada je admin na duty i kada nesto pise u IC chet da mu je ime u boji a kada ugasi duty da mu se vrati u bijelo
Citat: Martin_Jankovic poslato Decembar 25, 2013, 21:25:22 POSLE PODNE
Ok a kako da ovo napravim kada je admin na duty i kada nesto pise u IC chet da mu je ime u boji a kada ugasi duty da mu se vrati u bijelo
OnPlayerText callback, staviš proveru da ako je admin na dužnosti piše poruku sa crvenom bojom a ako nije bela.
mozes mi ti to napraviti ja sam tek novi
OnPlayerText(playerid, text[])
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, sizeof pName);
new string[128];
if(AdminDuty[playerid])
{
format(string, sizeof string, "%s: {FFFFFF}%s.", pName, text);
return ProxDetector(playerid, 30.0, 0xFF293EFF, 0xFF4F61FF, 0xFF6978FF, 0xFF8591FF, 0xFF99A3FF);
}
else
{
format(string, sizeof string, "%s: %s", pName, text);
ProxDetector(playerid, 30.0, FADE1, FADE2, FADE3, FADE4, FADE5);
}
return false;
}