GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: ColorDem - 2011. július 25. - 20:21:33

Cím: checkpoint parancs
Írta: ColorDem - 2011. július 25. - 20:21:33
Üdv!
Már van 1 parancs ami megnyit egy fegyvervásárló dialógot.
Azt hogy csinálom meg hogy ezt csak 1 adott checkpointban tudom használni?
Cím: checkpoint parancs
Írta: mauladam - 2011. július 25. - 20:53:22
Ehez hogy teljes kódot kaphass, kellene a parancs is, de azért leírom.
PL.:
Ha ZCMD-t használasz:
[pawn]CMD:fegyverdialog(playerid)
{
       if(IsPlayerInCheckpoint(playerid))
       {
              ShowPlayerDialog(stb...);
       }
       else
       {
              SendClientMessage(playerid, 0xFFFFFF, \"Nem vagy a fegyver felvevõhelyen, menj a CP-be\");
              SetPlayerCheckpoint(stb...);
       }
       return 1;
}[/pawn]
Ja és így csak akkor mûködik, ha egy cp-d van, mivel nincs ellenõrizve melyikbe áll.
Ha jó jöhet a + (Hsz címe mellett jobbra ez)
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 25. - 21:27:25
Itt van a parancs:
    [pawn]if(strcmp(\"/buy\",cmdtext,true,10) == 0) {
        if(gTeam[playerid] == TEAM_KATONA) {
            ShowPlayerDialog(playerid,04041,DIALOG_STYLE_LIST,\"{FF0000}Fegyver bolt -Humans-\",\"Desert Eagle ($5000)\\nColt 45. ($2000)\\nMP5-K MG ($5000)\\nM4 ($10000)\\nAK-47 ($9000)\\nSpas12 Shotgun ($10000)\\nTec-9 ($4000)\",\"Accept\",\"Cancel\");
        }
        else if(gTeam[playerid] == TEAM_CIVIL) {
            SendClientMessage(playerid,ADMIN_RED,\"HIBA: Te egy civil vagy!Nem értesz az ilyen fegyverekhez!\");
        }
        return 1;[/pawn]
Cím: checkpoint parancs
Írta: mauladam - 2011. július 25. - 21:41:52
Ebben az esetben:
 [pawn]if(strcmp(\"/buy\",cmdtext,true,10) == 0) {
        if(gTeam[playerid] == TEAM_KATONA) {
           if(IsPlayerInCheckpoint(playerid)) {
ShowPlayerDialog(playerid,04041,DIALOG_STYLE_LIST,\"{FF0000}Fegyver bolt -Humans-\",\"Desert Eagle ($5000)\\nColt 45. ($2000)\\nMP5-K MG ($5000)\\nM4 ($10000)\\nAK-47 ($9000)\\nSpas12 Shotgun ($10000)\\nTec-9 ($4000)\",\"Accept\",\"Cancel\");
           }
           else
           {
            SendClientMessage(playerid, 0xFFFFFF, \"Nem vagy a fegyverboltban, menj a cp-be!\");
SetPlayerCheckpoint(playerid, x,y,z, 2.0);   //az x,y,z helyére a koordináták, a 2.0 helyére a Cp mérete!
           }      
        }
        else if(gTeam[playerid] == TEAM_CIVIL) {
            SendClientMessage(playerid,ADMIN_RED,\"HIBA: Te egy civil vagy!Nem értesz az ilyen fegyverekhez!\");
        }
        return 1;[/pawn]
Ha jó jöhet a + (Hsz címe mellett jobbra ez)
Ja és így csak akkor mûködik, ha egy cp-d van, mivel nincs ellenõrizve melyikbe áll.
Remélem segitettem :)   (ne így próbáld amx-be forditani, elcsúsztak a sorok)
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 26. - 19:21:26
Én majd lehet szeretnék több cp-t.
Akkor majd ,hogy úgy is mûködjön mit csináljak?
Cím: checkpoint parancs
Írta: Zsolesszka - 2011. július 26. - 20:29:36
Egyszerre csak egy cp látható egy játékosnak.
 
Important Note: You can only show one checkpoint at a time. If you need more, create the checkpoints only when the player is near. [/quote]
http://wiki.sa-mp.com/wiki/SetPlayerCheckpoint
Így ha több helyet akarsz akkor valami mással kell jelölnöd.
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 26. - 20:46:30
Akkor csinálom IsPlayerInRangeOfPoint-al.
Azzal is ugyanígy kell?
Cím: checkpoint parancs
Írta: mauladam - 2011. július 26. - 21:06:57
Megírtam neked:
ZCMD kell hozzá! Innen töltheted le!
[pawn]new Float:Fegyverboltok[2][3]={         //2 a sorok száma, 3 a sorok értékeinek száma.
{2204.9468, 1986.2877, 16.7380},    //x,y,z - 1. vásárlási hely koordinátái. (ird át!)
{2224.6557, 2467.4673, 12.3415}      //x,y,z - 2. vásárlási hely koordinátái (ird át!).
//Ugyanígy folytathatod ha több vásárlási hely kell. (utolsó után ne rakj vesszõt!)
};
CMD:buy(playerid)
{
for(new i; i<2; i++){    //írd át a 2-est annyira, amennyi vásárlási helyet akarsz!
    if(IsPlayerInRangeOfPoint(playerid, 3.0, Fegyverboltok

    {


        if(gTeam[playerid] == TEAM_KATONA)


        {


            ShowPlayerDialog(playerid,04041,DIALOG_STYLE_LIST,\"{FF0000}Fegyver bolt -Humans-\",\"Desert Eagle ($5000)\\nColt 45. ($2000)\\nMP5-K MG ($5000)\\nM4 ($10000)\\nAK-47 ($9000)\\nSpas12 Shotgun ($10000)\\nTec-9 ($4000)\",\"Accept\",\"Cancel\");


        }


        else if(gTeam[playerid] == TEAM_CIVIL)


        {


            SendClientMessage(playerid,ADMIN_RED,\"HIBA: Te egy civil vagy!Nem értesz az ilyen fegyverekhez!\");


        }


    }


    else


    {


      SendClientMessage(playerid, ADMIN_RED, \"Nem vagy fegyverboltnál, ha tudni szeretnéd hol vannak: /fegyverboltok\");


    }


}


return 1;


}


CMD:fegyverboltok(playerid)


{


new x = -1;


for(new i; i<2; i++){ //írd át a 2-est annyira, amennyi vásárlóhelyet akarsz!


    SetPlayerMapIcon(playerid, x+1, Fegyverboltok
  • , Fegyverboltok[1], Fegyverboltok[2], 6, 1, 0);


}


return 1;


}[/pawn]


Remélem jó! (Ha mégsem, megkérnék valakit aki jobb szkripter mint én, hogy mondja el a hibáimat, hogy legközelebb ne legyen! Köszönöm :) )
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 28. - 16:00:17
Valami nem jó, nem csinál semmit.
De lehet a ZCMD-t nem raktam fel jól.
Cím: checkpoint parancs
Írta: mauladam - 2011. július 29. - 11:35:26
Nem tudom mi lehet a gond, pill átnézem, hátha meglesz.
E: Pawno error/warning volt?
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 29. - 20:42:22
warning volt.
pwn(5918) : warning 203: symbol is never used: \"buy\"
pwn(5918) : warning 203: symbol is never used: \"fegyverboltok\"
Cím: checkpoint parancs
Írta: mauladam - 2011. július 29. - 23:46:07
Sorokat írd le légyszíves, mert azok nélkül nehéz..
Cím: checkpoint parancs
Írta: herban - 2011. július 30. - 01:16:14
Ehhez nem kell sorokat bemásolni.
Van 2 változod amit nem használsz sehol ez okozza a warningot
Cím: checkpoint parancs
Írta: Norby - 2011. július 30. - 11:54:27
ez csak egy tipp de szerintem az jó
 
CMD:fegyverbolt(playerid, params[]) 

 
de szerintem ez nem változtat semmin :)
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 30. - 15:10:28
Még mindig nem csinál semmit.
A zcmd-t úgy telepítsem hogy beleteszem a Pawno include mappába?
Cím: checkpoint parancs
Írta: Norby - 2011. július 30. - 16:25:30
Igen tedd bele és a Mod elejére ird oda ezt :
 
#include <zcmd>

 
És az
 
public OnPlayerCommandText

 
Helyett :
 
public OnPlayerCommandReceived
Cím: checkpoint parancs
Írta: herban - 2011. július 30. - 16:36:31
public OnPlayerCommandReceived[/quote]
Ez felesleges hisz ennélkül is megy.
Így néz ki egy zcmd-s parancs:
[pawn]
CMD:test(playerid, params[]) {
   SetPlayerPos(playerid,x,y,z);//Példa
   return 1;
  }
[/pawn]
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 30. - 17:08:28
Ha oda írom hogy: #include <zcmd>
Akkor már 2 errort is ki ír.
(5892) : error 029: invalid expression, assumed zero
(5896) : error 029: invalid expression, assumed zero
Cím: checkpoint parancs
Írta: mauladam - 2011. július 30. - 22:11:38
ColorDem: Igen úgy kell, DE a zcmd parancsot nem teheted az OnOplayerCommendText callbackbe.
Lehet, hogy ez a hiba.
[Go_oG]Website: Ha nem használsz sztringbontást, pl.: sscanf stb.. akkor nem muszály a params[].
Cím: checkpoint parancs
Írta: ColorDem - 2011. július 31. - 15:05:11
A Onplayercommandtext-et kitöröltem, mert tudom hogy vagy az egyiket használom vagy a másikat.
Nem tudom mit csináljak.
Edit: Megvan megcsináltam! Már mûködik. :D
az #include <zcmd> hiányzott az elejérõl , és ezután ki írt pár errort , azokat javítottam és már mûködik tökéletesen.
Köszönöm mindenkinek a segítségét!!
Edit: Bocsi de megint meg kell nyitnom ugyanis van egy kis idegesítõ dolog.
Ha csinálok mondjuk 2 fegyverboltot, és beírom hogy /buy akkor 2-szer írja ki azt hogy nem vagyok a fegyverboltnál.
És ha ott állok az egyik boltnál és ott írom be, akkor mûködik a bolt , viszont kiírja(egyszer) hogy nem vagyok a fegyverboltnál.
Tudna valaki még ebben egy picit segíteni?
Mert zavar hogy ennyiszer kiírja.
Cím: checkpoint parancs
Írta: mauladam - 2011. augusztus 01. - 23:24:34
[pawn]new Float:Fegyverboltok[2][3]={         //2 a sorok száma, 3 a sorok értékeinek száma.
{2204.9468, 1986.2877, 16.7380},    //x,y,z - 1. vásárlási hely koordinátái. (ird át!)
{2224.6557, 2467.4673, 12.3415}      //x,y,z - 2. vásárlási hely koordinátái (ird át!).
//Ugyanígy folytathatod ha több vásárlási hely kell. (utolsó után ne rakj vesszõt!)
};
CMD:buy(playerid)
{
for(new i; i<2; i++){    //írd át a 2-est annyira, amennyi vásárlási helyet akarsz!
    if(!IsPlayerInRangeOfPoint(playerid, 3.0, Fegyverboltok

    {


        if(gTeam[playerid] == TEAM_KATONA)


        {


            ShowPlayerDialog(playerid,04041,DIALOG_STYLE_LIST,\"{FF0000}Fegyver bolt -Humans-\",\"Desert Eagle ($5000)\\nColt 45. ($2000)\\nMP5-K MG ($5000)\\nM4 ($10000)\\nAK-47 ($9000)\\nSpas12 Shotgun ($10000)\\nTec-9 ($4000)\",\"Accept\",\"Cancel\");


        }


        else(gTeam[playerid] == TEAM_CIVIL)


        {


            SendClientMessage(playerid,ADMIN_RED,\"HIBA: Te egy civil vagy!Nem értesz az ilyen fegyverekhez!\");


        }


    }


    else


    {


      SendClientMessage(playerid, ADMIN_RED, \"Nem vagy fegyverboltnál, ha tudni szeretnéd hol vannak: /fegyverboltok\");


    }


}


return 1;


}


CMD:fegyverboltok(playerid)


{


new x = -1;


for(new i; i<2; i++){ //írd át a 2-est annyira, amennyi vásárlóhelyet akarsz!


    SetPlayerMapIcon(playerid, x+1, Fegyverboltok
  • , Fegyverboltok[1], Fegyverboltok[2], 6, 1, 0);


}


return 1;


}[/pawn]


Lehet hogy így jó lesz. (Csak tipp).


EDIT: Módosítottam, próbáld így.
Cím: checkpoint parancs
Írta: ColorDem - 2011. augusztus 02. - 10:34:18
Errort ír ki: error 029: invalid expression, assumed zero
A 2. else-vel van valami baja.
Cím: checkpoint parancs
Írta: CANNONN - 2011. augusztus 04. - 22:14:10
Ennek így elvileg jónak kell lennie,de ha nem szólj,és javítom!
Lehet nagyon nagy marhaságot csináltam,de hátha!  :) ;)
[pawn]CMD:buy(playerid, params[])
{
    if(IsPlayerInRangeOfPoint(playerid, 7.0, X,Y,Z) || IsPlayerInRangeOfPoint(playerid, 7.0, X,Y,Z)) //X,Y,Z helyére a fegyverbolt koordinátáit!
    {
        if(gTeam[playerid] == TEAM_KATONA)
        {
            ShowPlayerDialog(playerid,04041,DIALOG_STYLE_LIST,\"{FF0000}Fegyver bolt -Humans-\",\"Desert Eagle ($5000)\\nColt 45. ($2000)\\nMP5-K MG ($5000)\\nM4 ($10000)\\nAK-47 ($9000)\\nSpas12 Shotgun ($10000)\\nTec-9 ($4000)\",\"Accept\",\"Cancel\");
        }
        else
   if(gTeam[playerid] == TEAM_CIVIL)
        {
            SendClientMessage(playerid,0xff0000AA,\"HIBA: Te egy civil vagy!Nem értesz az ilyen fegyverekhez!\");
        }
    }
    else
    {
      SendClientMessage(playerid, 0xff0000AA, \"Nem vagy fegyverboltnál, ha tudni szeretnéd hol vannak: /fegyverboltok\");
    }
   return 1;
}
CMD:fegyverboltok(playerid)
{
    SetPlayerMapIcon(playerid, 55, X,Y,Z, 6, 0x00ff1aAA); //X,Y,Z-t írd át a fegyverbolt helyeinek a koordinátáira
    SetPlayerMapIcon(playerid, 55, X,Y,Z, 6, 0x00ff1aAA); //X,Y,Z-t írd át a fegyverbolt helyeinek a koordinátáira
   return 1;
}[/pawn]