Azt szeretném megkérdezni, hogyan lehet megállapítani mennyi killnél tart.. Vagyis nem kijelzést , hanem mondjuk: if [pKills]== 3{.... ezt hogy lehetne megoldani?
Idézetet írta: Ni€|{ date=1313578481\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10551\" data-ipsquote-contentclass=\"forums_TopicAzt szeretném megkérdezni, hogyan lehet megállapítani mennyi killnél tart.. Vagyis nem kijelzést , hanem mondjuk: if [pKills]== 3{.... ezt hogy lehetne megoldani?
Valahova a szkript elejére, a többi változóhoz:
new pKills[MAX_PLAYERS];
OnPlayerDeath alá:
pKills[playerid]++;
Igen ez a része nekem is megvan idáig ment , Csak az kéne, hogy OnplayerCommandhoz valami ilyesmi. If pkills= 10 { //ide a cucc
Idézetet írta: Ni€|{ date=1313580039\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10551\" data-ipsquote-contentclass=\"forums_TopicIgen ez a része nekem is megvan idáig ment , Csak az kéne, hogy OnplayerCommandhoz valami ilyesmi. If pkills= 10 { //ide a cucc
?
if(pKills[playerid] == 2)
[pawn]
if(!strcmp(\"/getmykills\", cmdtext, true))
{
new string[128];
format(string, 128, \"Ennyit öltél: %i\", pKills[playerid]);
SendClientMessage(playerid, 0xFFFF00AA, string);
return 1;
}
if(!strcmp(\"/extrafelvesz\", cmdtext, true))
{
if(pKills[playerid] >= 5) // csak akkor kapja meg az extrát (pénzt) ha az öléseinek száma 5 vagy több
{
GivePlayerMoney(playerid, 5000);
SendClientMessage(playerid, 0xFFFF00AA, \"Extra megszerezve. ($5000)\");
}
else SendClientMessage(playerid, 0xFF0000AA, \"Nem öltél eleget! (Min. 5)\");
return 1;
}
[/pawn]
...és ez PVarral szebben megoldható.
Kérek egy tetszikelést, ha mûködik. :)
Tetején:
[pawn]enum pInfo
{
pKills,
pDeaths
};
[/pawn]
Ez miben külömbözik ettõl?
[pawn]new pKills[MAX_PLAYERS];[/pawn]
OnplayerDeath alatt:
[pawn]PlayerInfo[playerid][pDeaths]++;
PlayerInfo[killerid][pKills]++; [/pawn]
Aztán ez:
[pawn]if(!strcmp(\"/extrafelvesz\", cmdtext, true))
{
if(pKills[playerid] >= 5) // csak akkor kapja meg az extrát (pénzt) ha az öléseinek száma 5 vagy több
{
GivePlayerMoney(playerid, 5000);
SendClientMessage(playerid, 0xFFFF00AA, \"Extra megszerezve. ($5000)\");
}
else SendClientMessage(playerid, 0xFF0000AA, \"Nem öltél eleget! (Min. 5)\");
return 1;
}[/pawn]
És az eredmény:
C:\\Program Files\\Rockstar Games\\GTA San Andreas\\SAMP Szerver\\gamemodes\\test.pwn(186) : error 028: invalid subscript (not an array or too many subscripts): \"pKills\"
C:\\Program Files\\Rockstar Games\\GTA San Andreas\\SAMP Szerver\\gamemodes\\test.pwn(186) : warning 215: expression has no effect
C:\\Program Files\\Rockstar Games\\GTA San Andreas\\SAMP Szerver\\gamemodes\\test.pwn(186) : error 001: expected token: \";\", but found \"]\"
C:\\Program Files\\Rockstar Games\\GTA San Andreas\\SAMP Szerver\\gamemodes\\test.pwn(186) : error 029: invalid expression, assumed zero
C:\\Program Files\\Rockstar Games\\GTA San Andreas\\SAMP Szerver\\gamemodes\\test.pwn(186) : fatal error 107: too many error messages on one line
Compilation aborted.Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase
4 Errors.
A hiba nálad van.
Cseréld ki ezt:
[pawn]if(pKills[playerid] >= 5)[/pawn]
erre:
[pawn]if(PlayerInfo[playerid][pKills] >= 5)[/pawn]
...és azt hiszem így kész is. Ha még adódna probléma, írj.
Szuper.. így jó öszi. Egy kérdés. Az elõzõ nem elfogadott forma vagy miért nem jó?
Az is jó.... De ne nagyon menjünk bele, a lényeg, hogy mûködik. ;)
[pawn]if(!strcmp(\"/uav\", cmdtext, true))
{
if(PlayerInfo[playerid][pKills] >= 3) //Csak akkor ha 3 vagy több kill
{
new uav[128];
new sendername[MAX_PLAYER_NAME];
ShowPlayerMarkers(1);
ShowNameTags(1);
format(uav, sizeof uav, \"%s aktiválta az UAV-ot!\", sendername);
SendClientMessageToAll(COLOR_GREEN, uav);
}
else SendClientMessage(playerid, COLOR_GREEN, \"3 ölés szükséges!\");
return 1;
}[/pawn]
Itt 3 kill után beírom a /uav-t erre semmi nem történik.. Se map ikon se name tag se nem írha h ki aktiválta. ötlet?
Idézetet írta: Ni€|{ date=1313594121\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10551\" data-ipsquote-contentclass=\"forums_Topic[pawn]if(!strcmp(\"/uav\", cmdtext, true))
{
if(PlayerInfo[playerid][pKills] >= 3) //Csak akkor ha 3 vagy több kill
{
new uav[128];
new sendername[MAX_PLAYER_NAME];
ShowPlayerMarkers(1);
ShowNameTags(1);
format(uav, sizeof uav, \"%s aktiválta az UAV-ot!\", sendername);
SendClientMessageToAll(COLOR_GREEN, uav);
}
else SendClientMessage(playerid, COLOR_GREEN, \"3 ölés szükséges!\");
return 1;
}[/pawn]
Itt 3 kill után beírom a /uav-t erre semmi nem történik.. Se map ikon se name tag se nem írha h ki aktiválta. ötlet?
[pawn]if(!strcmp(\"/uav\", cmdtext, true))
{
if(PlayerInfo[playerid][pKills] >= 3) //Csak akkor ha 3 vagy több kill
{
new uav[128];
new sendername[24];
ShowPlayerMarkers(1);
ShowNameTags(1);
GetPlayerName(playerid, sendername, 24);
format(uav, sizeof uav, \"%s aktiválta az UAV-ot!\", sendername);
SendClientMessageToAll(COLOR_GREEN, uav);
}
else SendClientMessage(playerid, COLOR_GREEN, \"3 ölés szükséges!\");
return 1;
}[/pawn]
Így jó kell legyen! ;)Egyéb: Marker módok ----> http://wiki.sa-mp.com/wiki/MarkerModes
Névtagoknál (nametag) 1 - bekapcs. (mutat) || 0 - kikapcs. (elrejt)
Köszönöm 34x re is :P Nemsokára kipróbálom .
eDIT: Sajna nemjó.. Se mapmarker se nametag.
Valaki esetleg?
Dupla hozzászólás automatikusan összefûzve. ( 2011. augusztus 18. - 13:04:11 )
*up* Sajnos még nem oldódott meg,