Szerző Téma: Ez a parancs vajon mûködni fog?  (Megtekintve 1494 alkalommal)

dexi

  • Vendég
Ez a parancs vajon mûködni fog?
« Dátum: 2011. december 14. - 11:45:56 »
0 Show voters
[pawn]if(strcmp(cmd, \"/kirabol\", true) == 0)
    {
    new Float:xpos,Float:ypos,Float:zpos;
    new aesd, aesde;
    if(IsPlayerInRangeOfPoint(playerid,3, xpos,ypos,zpos))
        for(new p = 0; p < MAX_PLAYERS; p++)
        {
            GetPlayerPos(p,xpos,ypos,zpos);
    aesd = GetPlayerMoney(p);
    aesde = GetPlayerMoney(playerid);
    SetPlayerMoney(p,aesd - aesd);
    SetPlayerMoney(playerid, aesd+aesde);
    SendClientMessage(playerid, -1,\"Kiraboltad a csókát.\");
    SendClientMessage(p,-1,\"Nézd csak meg a pénztárcád;)\");
    return 1;
     }
     else SendClientMessage(playerid,red,\"Nincs a közeledben senki.\");
     return 1;
     }[/pawn]
Gyors összedobtam ezt a parancsot.. csak nincs kivel tesztelnem. Szerintetek mûködne?

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Ez a parancs vajon mûködni fog?
« Válasz #1 Dátum: 2011. december 14. - 13:56:25 »
0 Show voters
röviden a válasz: NEM :D
de azért kiváncsi lennék a gondolat menetedre :)
[pawn]
new Float:xpos,Float:ypos,Float:zpos;
if(IsPlayerInRangeOfPoint(playerid,3, xpos,ypos,zpos))
[/pawn]
ez röviden annyit takar számomra hogy 0.0,0.0,0.0-tól mérten 3.0 Range távolságban kell álljon az ember a parancs használatához
[pawn]GetPlayerPos(p,xpos,ypos,zpos);[/pawn]
Lekérdezed a játékos pozícióját de késõbb nem is kezdesz semmit az adatokkal :O
[pawn]
aesd = GetPlayerMoney(p);
aesde = GetPlayerMoney(playerid);
SetPlayerMoney(p,aesd - aesd);
SetPlayerMoney(playerid, aesd+aesde);
[/pawn]
Minden pénzét elveszi a tolvaj nem? akkor nem kell számolni semmit :) \"aesd - aesd\"
[pawn]SetPlayerMoney(p,0);[/pawn]
Gondolom kezdõ vagy még scriptelés terén :) kezdésnek nem rossz azért :P
Próbáld meg talán ezzel menni fog :)
[pawn]
if(strcmp(cmd, \"/kirabol\", true) == 0)
{
    new Float:xpos,Float:ypos,Float:zpos;
    new spenz,lpenz; // Saját Pénz , Lopott Pénz
new bool:lopas; // Lopott e a játékos
for(new p = 0; p < MAX_PLAYERS; p++)
{
       if(!IsPlayerConnected(p) || p == playerid) { continue; }
        GetPlayerPos(p,xpos,ypos,zpos);
        if(IsPlayerInRangeOfPoint(playerid,3.0, xpos,ypos,zpos))
        {
       lpenz = GetPlayerMoney(p); spenz = GetPlayerMoney(playerid);
       SetPlayerMoney(p,0); SetPlayerMoney(playerid, spenz+lpenz);
       lopas = true;
       //
       SendClientMessage(playerid, -1,\"Kiraboltál egy csókát.\"); // Azért módosítottam mert az összes közelben levõt kirabolja nem csak egyet
       SendClientMessage(p,-1,\"Nézd csak meg a pénztárcád;)\");
   }
    }
    if(lopas == false ) { SendClientMessage(playerid,red,\"Nincs a közeledben senki.\"); } // Ha nem lopott senkitõl
    return 1;
}
[/pawn]
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

dexi

  • Vendég
Ez a parancs vajon mûködni fog?
« Válasz #2 Dátum: 2011. december 14. - 14:09:35 »
0 Show voters
Nem szeretném csak úgy kimásolni, úgy szerintem nem fogok többet tudni : D.
[pawn]if(strcmp(cmd, \"/kirabol\", true) == 0)
    {
    new Float:xpos,Float:ypos,Float:zpos;
    new aesd, aesde;
        for(new p = 0; p < MAX_PLAYERS; p++)
        {
        GetPlayerPos(p,xpos,ypos,zpos);
        if(IsPlayerInRangeOfPoint(playerid,3, xpos,ypos,zpos))
        {
    aesd = GetPlayerMoney(p);
    aesde = GetPlayerMoney(playerid);
    SetPlayerMoney(p,aesd - aesd);
    SetPlayerMoney(playerid, aesd+aesde);
    SendClientMessage(playerid, -1,\"Kiraboltad a csókát.\");
    SendClientMessage(p,-1,\"Nézd csak meg a pénztárcád;)\");
    return 1;
     }
     else SendClientMessage(playerid,red,\"Nincs a közeledben senki.\");
     return 1;
     }
  }[/pawn]
Most változtattam rajta valami lényegeset? :D

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Ez a parancs vajon mûködni fog?
« Válasz #3 Dátum: 2011. december 14. - 15:04:06 »
0 Show voters
hát most a Range ellenõrzést jó helyre raktad :)
[pawn]SetPlayerMoney(p,aesd - aesd);[/pawn]
ez még mindig felesleges matematikai mûvelet :D ha kivonod a számból önmagát akkor 0-t fogsz kapni :D
[pawn]SetPlayerMoney(p,0);[/pawn]
ha az 1. \"return 1;\"-et bent hagyod akkor a kód 1 közeli játékosnál fut le, tehát az 1. közeli ID-t kirabolod és megáll a kód futása.
Te vagy mondjuk a 0-s ID:
1-es ID távolsága mondjuk: 4.0
2-es ID távolsága mondjuk: 2.8
3-as ID távolsága mondjuk: 2.2
...
És te a 2-es ID-t rabolod ki, aztán a return 1 miatt nem fut tovább a kód
[pawn]else SendClientMessage(playerid,red,\"Nincs a közeledben senki.\");[/pawn]
ez a kód jelen helyzetben semmit nem ér, és szerintem felesleges az IF után tenni mint ELSE ág, mivel akkor minden egyes ID-nál kiirja aki nincs a közeledben, hogy \"Nincs a közeledben senki.\"
[pawn]if(!IsPlayerConnected(p) || p == playerid) { continue; }[/pawn]
ezt a részt rakd be az általam írt kódból, ez arra jó, hogy saját magát ne rabolja ki az ember :D és az offline ID-kat átugorja
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

dexi

  • Vendég
Ez a parancs vajon mûködni fog?
« Válasz #4 Dátum: 2011. december 14. - 15:20:45 »
0 Show voters
[pawn] if(strcmp(cmd, \"/kirabol\", true) == 0)
    {
    new Float:xpos,Float:ypos,Float:zpos;
    new aesd, aesde;
        for(new p = 0; p < MAX_PLAYERS; p++)
        {
        if(!IsPlayerConnected(p) || p == playerid) { continue; }
        GetPlayerPos(p,xpos,ypos,zpos);
        if(IsPlayerInRangeOfPoint(playerid,3, xpos,ypos,zpos))
        {
    aesd = GetPlayerMoney(p);
    aesde = GetPlayerMoney(playerid);
    SetPlayerMoney(p,aesd - aesd);
    SetPlayerMoney(playerid, aesd+aesde);
    SendClientMessage(playerid, -1,\"Kiraboltad a csókát.\");
    SendClientMessage(p,-1,\"Nézd csak meg a pénztárcád;)\");
    return 1;
     }
     else SendClientMessage(playerid,red,\"Nincs a közeledben senki.\");
     return 1;
     }
  }[/pawn]
Így ha beírom a parancsot ki írja hogy ninsc ilyen parancs.

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Ez a parancs vajon mûködni fog?
« Válasz #5 Dátum: 2011. december 14. - 15:40:08 »
0 Show voters
Minek két return?
Elég csak a végére

Nem elérhető Kovacs_Richard

  • 1743
  • HRP Fejlesztő
  • Discord: Kovacs_Richard#0321
    • Profil megtekintése
    • Hun Role Play Web
Ez a parancs vajon mûködni fog?
« Válasz #6 Dátum: 2011. december 14. - 15:44:12 »
0 Show voters
ezt a kódot próbáld meg, a tied kicsit szerkesztve
[pawn]
if(strcmp(cmd, \"/kirabol\", true) == 0)
{
new Float:xpos,Float:ypos,Float:zpos;
new aesd, aesde;
for(new p = 0; p < MAX_PLAYERS; p++)
{
   if(!IsPlayerConnected(p) || p == playerid) { continue; }
        GetPlayerPos(p,xpos,ypos,zpos);
        if(IsPlayerInRangeOfPoint(playerid,3, xpos,ypos,zpos))
        {
       aesd = GetPlayerMoney(p);
       aesde = GetPlayerMoney(playerid);
       SetPlayerMoney(p,0);
       SetPlayerMoney(playerid, aesd+aesde);
       SendClientMessage(playerid, -1,\"Kiraboltad a csókát.\");
       SendClientMessage(p,-1,\"Nézd csak meg a pénztárcád;)\");
       return 1;
     }
}
}
[/pawn]
[pawn]
else SendClientMessage(playerid,red,\"Nincs a közeledben senki.\");
return 1;
[/pawn]
ezt a részt vágtam ki :)
Régóta nem tevékenykedem, mint SA-MP scripter.
HRP Fejlesztő.

Nem elérhető Sheet

  • 1508
  • Támogató
    • Profil megtekintése
Ez a parancs vajon mûködni fog?
« Válasz #7 Dátum: 2011. december 14. - 16:02:43 »
0 Show voters
Idézetet írta: Kovacs_Richard date=1323873852\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"14241\" data-ipsquote-contentclass=\"forums_Topic
ezt a kódot próbáld meg, a tied kicsit szerkesztve
[pawn]
if(strcmp(cmd, \"/kirabol\", true) == 0)
{
new Float:xpos,Float:ypos,Float:zpos;
new aesd, aesde;
for(new p = 0; p < MAX_PLAYERS; p++)
{
   if(!IsPlayerConnected(p) || p == playerid) { continue; }
        GetPlayerPos(p,xpos,ypos,zpos);
        if(IsPlayerInRangeOfPoint(playerid,3, xpos,ypos,zpos))
        {
       aesd = GetPlayerMoney(p);
       aesde = GetPlayerMoney(playerid);
       SetPlayerMoney(p,0);
       SetPlayerMoney(playerid, aesd+aesde);
       SendClientMessage(playerid, -1,\"Kiraboltad a csókát.\");
       SendClientMessage(p,-1,\"Nézd csak meg a pénztárcád;)\");
       return 1;
     }
}
}
[/pawn]
[pawn]
else SendClientMessage(playerid,red,\"Nincs a közeledben senki.\");
return 1;
[/pawn]
ezt a részt vágtam ki :)
 
az strcmp-nek kell visszaadni értéket.
én így csinálnám:
[pawn]if(strcmp(cmd, \"/kirabol\", true) == 0)
{
new Float:xpos,Float:ypos,Float:zpos;
new aesd, aesde;
for(new p = 0; p < MAX_PLAYERS; p++)
{
   if(!IsPlayerConnected(p) || p == playerid) { continue; }
        GetPlayerPos(p,xpos,ypos,zpos);
        if(IsPlayerInRangeOfPoint(playerid,3, xpos,ypos,zpos))
        {
       aesd = GetPlayerMoney(p);
       aesde = GetPlayerMoney(playerid);
       SetPlayerMoney(p,0);
       SetPlayerMoney(playerid, aesd+aesde);
       SendClientMessage(playerid, -1,\"Kiraboltad a csókát.\");
       SendClientMessage(p,-1,\"Nézd csak meg a pénztárcád;)\");
     }
}
return 1;
}[/pawn]

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal