Mato252 0 Odesláno: 10. Duben, 2015 Share Odesláno: 10. Duben, 2015 Zdravím mám jeden problém potrebujem zakomponovať podmienku else if(healcooldown == 1) { SendClientMessage(playerid,COL_RED,"Tento príkaz môžeš použiť každých 30 sekúnd"); } ale keď tam pridám tú podmienku tak to píše error : error: argument type mismatch (argument 2) tú podmienku potrebujem zakomponovať do tohoto : if(strcmp("/heal", cmdtext, true, 9) == 0){new healcooldown;healcooldown = 0;if(GetPlayerMoney(playerid) >= 5000){if(PlayerInfo[playerid][pVIP] == 1){if(healcooldown == 0){GivePlayerMoney(playerid, -5000);SetPlayerHealth(playerid,100);SendClientMessage(playerid, COLOR_GREEN,"Bol si uzdravený.");healcooldown = 1;SetTimer("healcool",30000,0);return 1;}}else if(!GetPlayerMoney(playerid) >= 5000){SendClientMessage(playerid, -1, "Nemáš dostatok peňazí.");return 1;}else if(PlayerInfo[playerid][pVIP] == 0){SendClientMessage(playerid, COLOR_RED, "Nemáš VIP!");return 1;}} } a dole mám : forward healcool(playerid);public healcool(playerid){new healcooldown;healcooldown = 0;return 1;} sorry ak vyzerám ako deb*l ale ja mám v tomto taký systém ktorý mi fungoval Link to comment Share on other sites More sharing options...
0 SkP_Teddy 0 Odesláno: 10. Duben, 2015 Share Odesláno: 10. Duben, 2015 if(strcmp("/heal", cmdtext, true, 9) == 0) { new healcooldown = 0; if(GetPlayerMoney(playerid) >= 5000) return SendClientMessage(playerid, -1, "Nemáš dostatok peňazí."); if(PlayerInfo[playerid][pVIP] == 0) return SendClientMessage(playerid, COLOR_RED, "Nemáš VIP!"); if(healcooldown == 1) return SendClientMessage(playerid,COL_RED,"Tento príkaz môžeš použiť každých 30 sekúnd"); GivePlayerMoney(playerid, -5000); SetPlayerHealth(playerid,100); SendClientMessage(playerid, COLOR_GREEN,"Bol si uzdravený."); healcooldown = 1; SetTimer("healcool",30000,0); return 1; } Link to comment Share on other sites More sharing options...
0 Mort 29 Odesláno: 10. Duben, 2015 Share Odesláno: 10. Duben, 2015 Proměnnou healcooldown musíš mít jako globální, ona se po vykonání příkazu smaže. Ale podle mého názoru, lepší řešení je tohle: new healcooldown[MAX_PLAYERS]; // ------------- if(strcmp("/heal", cmdtext, true, 5) == 0) { if(GetPlayerMoney(playerid) <= 5000) return SendClientMessage(playerid, -1, "Nemáš dostatok peňazí."); if(PlayerInfo[playerid][pVIP] == 0) return SendClientMessage(playerid, COLOR_RED, "Nemáš VIP!"); if(gettime() < (healcooldown[playerid] + 30)) return SendClientMessage(playerid,COL_RED,"Tento príkaz môžeš použiť každých 30 sekúnd"); GivePlayerMoney(playerid, -5000); SetPlayerHealth(playerid,100); SendClientMessage(playerid, COLOR_GREEN,"Bol si uzdravený."); healcooldown[playerid] = gettime(); return 1; } 1 Link to comment Share on other sites More sharing options...
0 Mato252 0 Odesláno: 10. Duben, 2015 Author Share Odesláno: 10. Duben, 2015 A keď bude tá premenná globálna nebude sa to správať tak že keď použije nejaký hráč /heal tak ten druhý bude musieť čakať 30 sekúnd ? a ešte že keď som tam dal to čo si napísal tak to píše aj tak error 035: argument type mismatch (argument 2) Link to comment Share on other sites More sharing options...
0 Mort 29 Odesláno: 10. Duben, 2015 Share Odesláno: 10. Duben, 2015 A keď bude tá premenná globálna nebude sa to správať tak že keď použije nejaký hráč /heal tak ten druhý bude musieť čakať 30 sekúnd ? Ne, každý hráč má své specifické ID (playerid), a já jsem vytvořil proměnnou o velikosti (defaultně) 500 polí, tzn. že se každý hráč bude mít svou vlastní proměnnou. a ešte že keď som tam dal to čo si napísal tak to píše aj tak error 035: argument type mismatch (argument 2) Ber jako povinnost při nahlášení chyby přidat i kód s označeným řádkem, bohužel, zatím číst myšlenky neumím. Link to comment Share on other sites More sharing options...
0 Mato252 0 Odesláno: 10. Duben, 2015 Author Share Odesláno: 10. Duben, 2015 Ahá ten error som už vyriešil mal som v SendClientMessage farbu danú ako COL_RED a musel som to prepísať na 0xF81414FF a ešte jednu vec by som potreboval vyriešit netýka sa to už tohoto ale vyhadzuje mi strašne vela warningov typu C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(1170) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(1171) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(1172) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(1174) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(1174) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(1174) : warning 213: tag mismatch tento krát prikladám aj časť kódu if(strcmp("/lv", cmdtext, true, 9) == 0) //riadok 1165{ //riadok 1166if(IsPlayerInAnyVehicle(playerid)) //riadok 1167{ //riadok 1168new currentvehicle2; //riadok 1169LVX = 2193.6252; //riadok 1170LVY = 1677.8135; //riadok 1171LVZ = 12.3672; //riadok 1172currentvehicle2 = GetPlayerVehicleID(playerid); //riadok 1173SetVehiclePos(currentvehicle2,LVX,LVY,LVZ); //riadok 1174return 1; //riadok 1175} //riadok 1176else //riadok 1177{ //riadok 1178SetPlayerPos(playerid,2193.6252,1677.8135,12.3672); //r 1179SetPlayerFacingAngle(playerid,93.5995); //riadok 1180return 1; //riadok 1181} //riadok 1182} //riadok 1183 viem že si teraz veľa ľudí povie že čo som to ***** dal do toho pawna ale mne to takto funguje line-y warningov ukazujú na premennú LVX LVY LVZ Link to comment Share on other sites More sharing options...
0 SkP_Teddy 0 Odesláno: 11. Duben, 2015 Share Odesláno: 11. Duben, 2015 skús toto new Float:LVX, Float:LVY, Float:LVZ; Link to comment Share on other sites More sharing options...
0 The hidden face 77 Odesláno: 11. Duben, 2015 Share Odesláno: 11. Duben, 2015 Proč ty pozice nezahrneš rovnou do SetVehiclePos? SetVehiclePos(currentvehicle2, 2193.6252, 1677.8135, 12.3672); Jinak pokud to chceš mít tak, jak to máš, tak to udělej přes float, jak říkal kolega nade mnou... Link to comment Share on other sites More sharing options...
0 Mato252 0 Odesláno: 11. Duben, 2015 Author Share Odesláno: 11. Duben, 2015 To new Float:LVX, Float:LVY, Float:LVZ; mám hore v globálnych to je ale teraz jedno potrebujem vyriešiť eštej jednu vec keď napíšem napríklad /healgsgsdgsdgsdgsd tak to spustí ten príkaz /heal a tiež rovnako mám aj prikaz smoke a keď zadám ten príkaz na servery napríklad /smokefasfasfas tak sa spustí ten príkaz /smoke kód k /heal je ten čo postol MORT Funguje to do 25 písmen /healxxxxxxxxxxxxxxxxxxxxx napríklad Link to comment Share on other sites More sharing options...
0 Mato252 0 Odesláno: 11. Duben, 2015 Author Share Odesláno: 11. Duben, 2015 ďakujem funguje ešte by som potreboval vyriešiť tieto warningy ( hádže mi to dokopy asi 200 warningov typu ) C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2006) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2006) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2006) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2007) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2008) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2008) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2008) : warning 213: tag mismatch C:\Users\užívateľ\Desktop\server\server\samp03z_svr_R1_win32\gamemodes\MATTMODD.pwn(2008) : warning 213: tag mismatch case 0://BMX //riadok 2001{ //riadok 2002if(GetPlayerMoney(playerid) >= 1200) //riadok 2003{ //riadok 2004GivePlayerMoney(playerid, -1200); //riadok 2005GetPlayerPos(playerid,CARX,CARY,CARZ); //riadok 2006GetPlayerFacingAngle(playerid,CARROT); //riadok 2007car1 = CreateVehicle(481, CARX, CARY, CARZ, CARROT,-1,-1,-1); //riadok 2008SendClientMessage(playerid, -1, "Kúpil si si BMX."); //riadok 2009PutPlayerInVehicle(playerid,car1,0); //riadok 2010return 1; //riadok 2011} //riadok 2012 premennú CARX,CARY,CARZ,CARROT mám hore ako globálnu new FLOAT:CARX,FLOAT:CARY,FLOAT:CARZ,FLOAT:CARROT; len teraz neviem či to má byť takto alebo s [MAX_PLAYERS] Link to comment Share on other sites More sharing options...
0 The hidden face 77 Odesláno: 11. Duben, 2015 Share Odesláno: 11. Duben, 2015 Pawn je háklivé na malá a velká písmenka, takže vůbec nemá páru, co FLOAT znamená. Takže si to přepiš na Float... Link to comment Share on other sites More sharing options...
0 Mato252 0 Odesláno: 11. Duben, 2015 Author Share Odesláno: 11. Duben, 2015 Ďakujem, funguje len ešte jeden problém všetky príkazy už fungujú ako majú len mi stále príkaz /smoke robil to že keď som tam pridal za to ešte niečo tak to ajtak vykonal ten príkaz /smoke tak som ho vymazal a aj tak keď napíšem napríklad /smokesss alebo /smo tak sa ten príkaz vykoná aj keď som ho z módu dal preč o.O wtf rozmýšlal som či nieje ten príkaz daný priamo v jadre sampe ale to by fungoval podla mňa normálne nie že dám /smokedsadasdsa a ono sa vykoná príkaz /smoke Link to comment Share on other sites More sharing options...
0 Mort 29 Odesláno: 11. Duben, 2015 Share Odesláno: 11. Duben, 2015 a přepsal jsi ten starý *.amx soubor tím novým? Link to comment Share on other sites More sharing options...
0 Mato252 0 Odesláno: 11. Duben, 2015 Author Share Odesláno: 11. Duben, 2015 áno prepísal ( mám hosting na fakahede ) taký blbý som zas neni :d aj som skúsil že som nahral cez ftp reštartol server a skúsil nakopírovať späť do inej zložky a keď som to PWN skontroloval tak to bolá tá najaktuálnejšia verzia kde som dal ten príkaz /smoke preč //vyriešené Link to comment Share on other sites More sharing options...
Dotaz
Mato252 0
Zdravím mám jeden problém potrebujem zakomponovať podmienku
ale keď tam pridám tú podmienku tak to píše error : error: argument type mismatch (argument 2)
tú podmienku potrebujem zakomponovať do tohoto :
if(strcmp("/heal", cmdtext, true, 9) == 0)
{
new healcooldown;
healcooldown = 0;
if(GetPlayerMoney(playerid) >= 5000)
{
if(PlayerInfo[playerid][pVIP] == 1)
{
if(healcooldown == 0)
{
GivePlayerMoney(playerid, -5000);
SetPlayerHealth(playerid,100);
SendClientMessage(playerid, COLOR_GREEN,"Bol si uzdravený.");
healcooldown = 1;
SetTimer("healcool",30000,0);
return 1;
}
}
else if(!GetPlayerMoney(playerid) >= 5000)
{
SendClientMessage(playerid, -1, "Nemáš dostatok peňazí.");
return 1;
}
else if(PlayerInfo[playerid][pVIP] == 0)
{
SendClientMessage(playerid, COLOR_RED, "Nemáš VIP!");
return 1;
}
}
}
a dole mám :
forward healcool(playerid);
public healcool(playerid)
{
new healcooldown;
healcooldown = 0;
return 1;
}
sorry ak vyzerám ako deb*l ale ja mám v tomto taký systém ktorý mi fungoval
Link to comment
Share on other sites
13 odpovědí na tuto otázku
Recommended Posts