Szerző Téma: Kills  (Megtekintve 1226 alkalommal)

Kills
« Dátum: 2011. augusztus 17. - 12:54:41 »
0 Show voters
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?

Kills
« Válasz #1 Dátum: 2011. augusztus 17. - 13:08:17 »
0 Show voters
Idézetet írta: Ni€|{ date=1313578481\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10551\" data-ipsquote-contentclass=\"forums_Topic
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?
 
Valahova a szkript elejére, a többi változóhoz:
 
new pKills[MAX_PLAYERS];

 
OnPlayerDeath alá:
 
pKills[playerid]++;

Kills
« Válasz #2 Dátum: 2011. augusztus 17. - 13:20:39 »
0 Show voters
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

Kills
« Válasz #3 Dátum: 2011. augusztus 17. - 13:21:46 »
0 Show voters
Idézetet írta: Ni€|{ date=1313580039\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"10551\" data-ipsquote-contentclass=\"forums_Topic
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
 
?
 
if(pKills[playerid] == 2)

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Kills
« Válasz #4 Dátum: 2011. augusztus 17. - 13:52:17 »
+1 Show voters
[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. :)
« Utoljára szerkesztve: 2011. augusztus 17. - 13:54:07 írta ScreaM »

Kills
« Válasz #5 Dátum: 2011. augusztus 17. - 14:09:46 »
0 Show voters
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.

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Kills
« Válasz #6 Dátum: 2011. augusztus 17. - 14:35:06 »
+1 Show voters
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.

Kills
« Válasz #7 Dátum: 2011. augusztus 17. - 16:18:27 »
0 Show voters
Szuper.. így jó öszi. Egy kérdés. Az elõzõ nem elfogadott forma vagy miért nem jó?

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Kills
« Válasz #8 Dátum: 2011. augusztus 17. - 16:41:39 »
0 Show voters
Az is jó.... De ne nagyon menjünk bele, a lényeg, hogy mûködik. ;)

Kills
« Válasz #9 Dátum: 2011. augusztus 17. - 17:15:21 »
0 Show voters
[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?

Nem elérhető jana4

  • 5929
  • Ex Staff
    • Profil megtekintése
Kills
« Válasz #10 Dátum: 2011. augusztus 17. - 18:16:20 »
0 Show voters
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)
« Utoljára szerkesztve: 2011. augusztus 17. - 18:18:40 írta ScreaM »

Kills
« Válasz #11 Dátum: 2011. augusztus 17. - 20:32:43 »
0 Show voters
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,
« Utoljára szerkesztve: 2011. augusztus 18. - 13:04:11 írta Ni€|{ »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal