Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Dacho poslato Jun 12, 2013, 23:09:50 POSLE PODNE

Naslov: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 12, 2013, 23:09:50 POSLE PODNE
Skripta koju koristim:LF edit
Detaljan opis problema:Nasao sam na forumu pomocu trazilice temu u kojoj je Blaeks ako se dobro secam ,dao komandu za admin duty ili flash neko od njih dvojice ,i postovao sam definisao ,ali slabo se snalazim sa onim erorima assumed zero i ostalo,jer ne znam tacno gde koliko zagrada se ide da li 1 ili 2 i posle koje zagrade ide ; ,a posle koje ne..
Dio skripte:

//ADMIN DUTY
COMMAND:aduty(playerid, params[])
    {
    if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, 3, "samo admini"); // Moze koristit samo admin lvl 1 i vise ( prilagodi varijablu pAdmin )
if(AdminDuty[playerid] == 0)
{
new string[128]; // definiras string
new Float:x, Float:y, Float:z; // defniras x,y,z za label
new Text3D:label = Create3DTextLabel("Administrator na\n duznosti ( ne ometaj) ", COLOR_YELLOW,x,y,z, 40.0, 0, 0); // kreiras lalel
GetPlayerPos(playerid,x,y,z); // Uzimas mu poziciju
SetPlayerHealth(playerid, 99); // postavis mu hp na 99
SetPlayerArmour(playerid, 99); // pancir na 99
format(string,sizeof(string), "Admin %s je sada na duznosti.",GetPlayerNameEx(playerid)); // Napravis string
SendClientMessageToAll(0xFFFFFFAA, string); // saljes ga svima
Attach3DTextLabelToPlayer(label,playerid,0.0, 0.0, 0.7); // stavis label na igraca
AdminDuty[playerid] = 1; // postavis mu da je duty
    }
    else if(AdminDuty[playerid] == 1)
    {
        new string[128]; // definiras string
        new Float:x,Float:y,Float:z; // defniras x,y,z za label
        new Text3D:label = Create3DTextLabel("Administrator na\n duznosti ( ne ometaj) ", COLOR_YELLOW,x,y,z, 40.0, 0, 0); // lreiras balel
        Delete3DTextLabel(label); // brises ga sa igraca
        format(string,sizeof(string),"Admin %s vise nije na duznosti.",GetPlayerNameEx(playerid)); // napravis string
        SendClientMessageToAll(0xFFFFFFAA, string); // saljes ga svima
SetPlayerHealth(playerid, 70); // stavis mu hp na 70
SetPlayerArmour(playerid, 0); // pancir na 0
    AdminDuty[playerid] = 0; // mkanes mu dury
    }
    return 1;
    }



Ovde su erori:


C:\Users\Daniel\Downloads\gamemodes\RP.pwn(39632) : error 029: invalid expression, assumed zero
C:\Users\Daniel\Downloads\gamemodes\RP.pwn(39632) : error 017: undefined symbol "cmd_aduty"
C:\Users\Daniel\Downloads\gamemodes\RP.pwn(39632) : error 029: invalid expression, assumed zero
C:\Users\Daniel\Downloads\gamemodes\RP.pwn(39632) : fatal error 107: too many error messages on one line

Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Drobnjak poslato Jun 12, 2013, 23:22:16 POSLE PODNE
Definiši simbol "cmd_aduty"
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 13, 2013, 00:28:43 PRE PODNE
Citat: [T:RP]FluXâ,,¢ poslato Jun 12, 2013, 23:22:16 POSLE PODNE
Definiši simbol "cmd_aduty"

Mozes li lepo objasniti,sta da napisem,googlam od kako si postovao  ::)
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: |TED| Boca SRB poslato Jun 13, 2013, 02:21:26 PRE PODNE
Posalji tu liniju
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 13, 2013, 10:06:13 PRE PODNE
Ispravio sam ove erore ,ali sada kad udjem u igru kucam /aduty ,da mi pancir i sve ,ali ne pise npr: Admin Dacho je sada na duznosti.

Vec pise Admin je sada na duznosti.. Iako sam ubacio ono da vata ime ,imate u gore navedenoj komandi ali evo opet ,pa ako mozete ispraviti sta nevalja:

format(string,sizeof(string), "Admin %s je sada na duznosti.",GetPlayerNameEx(playerid)); // Napravis string
SendClientMessageToAll(0xFFFFFFAA, string); // saljes ga svima


Isti ovaj problem imam i kad skinem admina sa duznosti :P
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Blaeks poslato Jun 13, 2013, 14:10:50 POSLE PODNE
Citat: David (Sabljak) A.k.A SABO(T) poslato Jun 13, 2013, 11:00:14 PRE PODNE
napravi stock negdje u skripti

stock PlayerName(playerid)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}


i stavi ovako

format(string,sizeof(string), "Admin %s je sada na duznosti.",PlayerName(playerid)); // Napravis string
SendClientMessageToAll(0xFFFFFFAA, string); // saljes ga svima

pa znas kako davide, ja koristim funkciju getplayernameeex i nikada do sada se nisam pozalio na nju, tako da problem nije do nje
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 13, 2013, 17:11:26 POSLE PODNE
Hvala ti sabljak ,ali sada dobijem neke nove warninge ,znam da to znaci da sam negde vec definisao ,ali ako obrisem tu liniju 40642 ,na kojoj se nalazi sledece:
new PlayerName[30];
Izlazice mi neki drugi erori ,ispod dole su warninzi koje imam.. Ako treba dacu vam par linija samo recite

C:\Users\Daniel\Downloads\gamemodes\test.pwn(40642) : warning 219: local variable "PlayerName" shadows a variable at a preceding level
C:\Users\Daniel\Downloads\gamemodes\test.pwn(55384) : warning 219: local variable "PlayerName" shadows a variable at a preceding level
C:\Users\Daniel\Downloads\gamemodes\test.pwn(65443) : warning 219: local variable "string" shadows a variable at a preceding level
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: |TED| Boca SRB poslato Jun 13, 2013, 17:14:37 POSLE PODNE
Citat: Dacho poslato Jun 13, 2013, 17:11:26 POSLE PODNE
Hvala ti sabljak ,ali sada dobijem neke nove warninge ,znam da to znaci da sam negde vec definisao ,ali ako obrisem tu liniju 40642 ,na kojoj se nalazi sledece:
new PlayerName[30];
Izlazice mi neki drugi erori ,ispod dole su warninzi koje imam.. Ako treba dacu vam par linija samo recite

C:\Users\Daniel\Downloads\gamemodes\test.pwn(40642) : warning 219: local variable "PlayerName" shadows a variable at a preceding level
C:\Users\Daniel\Downloads\gamemodes\test.pwn(55384) : warning 219: local variable "PlayerName" shadows a variable at a preceding level
C:\Users\Daniel\Downloads\gamemodes\test.pwn(65443) : warning 219: local variable "string" shadows a variable at a preceding level

Posalji linije
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 13, 2013, 17:26:29 POSLE PODNE
GetPlayerPos(giveplayerid,boomx, boomy, boomz);
CreateExplosion(boomx, boomy , boomz, 7, 10);
new PlayerName[30];
GetPlayerName(playerid, PlayerName, 30);
printf("[{F81414}Test server{C3C3C3}]: %s korosti komanu /explode %s", PlayerName, giveplayer);





GetPlayerPos(playerid, ix, iy, iz);
SetPlayerInterior(i, GetPlayerInterior(playerid));
SetPlayerPos(i, ix, iy, iz+1);
new PlayerName[30];
GetPlayerName(playerid, PlayerName, 30);
printf("|ADMIN Test Server| %s je koristio /getallhere da teleportira sve igrace", PlayerName);


}
if(strcmp(cmd, "/refill", true) == 0)
{
    new string[128];
    if(IsPlayerConnected(playerid))
    {
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: |TED| Boca SRB poslato Jun 13, 2013, 17:30:59 POSLE PODNE
Posalji ceo kod ovoga if(strcmp(cmd, "/refill", true) == 0)
{
    new string[128];
    if(IsPlayerConnected(playerid))
    {


Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: |TED| Boca SRB poslato Jun 13, 2013, 17:32:47 POSLE PODNE
Ovaj stock napravis kao sto ti je dao stock PlayerName(playerid)
{
new pName[MAX_PLAYER_NAME];
GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
return pName;
}
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 13, 2013, 17:39:46 POSLE PODNE
Citat: David (Sabljak) A.k.A SABO(T) poslato Jun 13, 2013, 17:29:04 POSLE PODNE
e sa onim Stockom sta sam ti dao

ne moras vise koristit New playername ni getplayername

samo moras postavit u string PlayerName(playerid)

Ne kontam bas mozes li mi dati primer kako da postavim u string ? :P
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 13, 2013, 18:04:10 POSLE PODNE
Izbacuje eror:

C:\Users\Daniel\Downloads\gamemodes\test.pwn(55384) : error 076: syntax error in the expression, or invalid function call

To je eror na onoj liniji gde sam ja dodao (playerid);
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: [UG]Cile poslato Jun 13, 2013, 22:37:55 POSLE PODNE
ma vjerovatno si dodao 2 stocka

stock PlayerName(playerid)


provjeri u skripti ctrl+f  stock PlayerName(playerid)

ako bude dva puta taj stock izbrisi jednom..
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Bugi poslato Jun 13, 2013, 23:20:34 POSLE PODNE
Zasto pravite toliko problema oko jedne komande evo prostog nacina..

na vrh: new Aduty[MAX_PLAYERS];

zatim pravimo komandu:

CMD:aduty(playerid, params)
{
if(Aduty[playerid] == 0)
{
SCM(playerid, -1, "Sada ste na duznosti");
Aduty[playerid] = 1;
}
else if(Aduty[playerid] == 1)
{
SCM(playerid, -1, "Vise niste na duznosti");
Aduty[playerid] = 0;
}
return 1;
}


Eto i samo ako hoces kad se igrac konektuje stavis mu Aduty na 0 al to kako hoces nije obavezno... Eto i samo dodas sta jos hoces kao SetPlayerChatBubble npr ili SetPlayerHealth, GivePlayerWeapon i slicno...
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Dacho poslato Jun 13, 2013, 23:27:56 POSLE PODNE
Resio sam ovde problem ,ali sada mi kada kucam opet /aduty pise da je sisao sa duznosti ,ali mu jos uvek stoji iznad glave admin na duznosti ,gde trebam da stavim i sta da mu se skine taj textdraw(pretpostavljam da je nesto poput destroytext ili removetext) ..
Naslov: Odg: [Pomoc]Admin Duznost
Poruka od: Bugi poslato Jun 13, 2013, 23:41:51 POSLE PODNE
Buraz ako koristis 3DTextLabel onda mislim da je funkcija Remove3DTextLabelForPlayer il tako nest uglavnom nadji na google kucaj to Remove3DTextLabelForPlayer i udji na onaj link sa wikipedije a sto je jos lakse ako koristis ChatBubble samo stavis za chatbubble msm za onaj text stavis prazno tj ovako " " i to je to ;)