Szerző Téma: Hogy van helyesen ez a parancs?  (Megtekintve 1392 alkalommal)

Hogy van helyesen ez a parancs?
« Dátum: 2013. Január 14. - 21:17:47 »
0 Show voters
Sziasztok ! Tegnap nyitottam egy munka help topicot , azóta megint van egy kis gond vele.
Azt szerettem volna megcsinálni , hogyha az emberke bányász , és beirja hogy /munka_banyasz berakja az elsõ checkpointot a munkához , ellenkezõ esetben ha nincs a dózerbe , akkor írja ki hogy nem ülsz dózerbe.
Két féle parancsal is próbáltam , az if(IsPlayerInVehicle(playerid , 482))-vel és ami a lenti kódba van azzal is de mindig azt irja miután elfogadtam a parancsot , és beirnám hogy /munka_banyasz , hogy nem ülök a dózerbe , még ha abba ülök is.
Na szóval itt a kód:
 
CMD:munka_banyasz(playerid)
{
if(GetPlayerTeam(playerid) == BANYASZ)
   {
   new jarmu;
   jarmu = GetPlayerVehicleID(playerid);
   if(jarmu==486)
   {
      SendClientMessage(playerid , COLOR_YELLOW,\"Elkezdtél dolgozni, menj a kijelölt helyekre.\");
      SetPlayerCheckpoint(playerid , -1894.3909,-1750.8854,21.7500,8.5);
      SetPVarInt(playerid,\"banyaszcp\",0);
   }
       else
   {
   SendClientMessage(playerid , COLOR_WHITE,\"Nem ülsz dózerbe , így nem tudod elkezdeni a munkát.\");
    }
            return 1;
    }
return 0;
}

 
Checkpointok :
 
public OnPlayerEnterCheckpoint(playerid)
{
    if(GetPVarInt(playerid,\"banyaszcp\") == 0) // Elsõ CP
    {
       SetPlayerCheckpoint(playerid, -1920.7643,-1714.8641,21.9083,8.5);
        SetPVarInt(playerid,\"banyaszcp\", 1);
}
if(GetPVarInt(playerid,\"banyaszcp\") == 1) // Második CP
     {
         SetPlayerCheckpoint(playerid,-1869.5566,-1717.8596,21.7500,8.5);
        SetPVarInt(playerid,\"banyaszcp\", 2);
     }
      if(GetPVarInt(playerid,\"banyaszcp\") == 2) // Harmadik CP
    {
       SetPlayerCheckpoint(playerid,-1868.2203,-1671.2141,21.7500,8.5);
        SetPVarInt(playerid,\"banyaszcp\", 3);
      }
      if(GetPVarInt(playerid,\"banyaszcp\") == 3) // 4
    {
       SetPlayerCheckpoint(playerid,-1923.6233,-1731.0911,22,8.5);
        SetPVarInt(playerid,\"banyaszcp\", 4);
      }
      if(GetPVarInt(playerid,\"banyaszcp\") == 4) // 5
    {
       SetPlayerCheckpoint(playerid,-1867.9788,-1716.7721,21.7500,8.5);
        SetPVarInt(playerid,\"banyaszcp\", 5);
      }
      if(GetPVarInt(playerid,\"banyaszcp\") == 5) // 5
    {
       SetPlayerCheckpoint(playerid,-1855.6295,-1677.2148,21.7564,8.5);
        SetPVarInt(playerid,\"banyaszcp\", 6);
      }
      if(GetPVarInt(playerid,\"banyaszcp\") == 6) // 5
    {
       SetPlayerCheckpoint(playerid,-1894.3909,-1750.8854,21.7500,8.5);
        DisablePlayerCheckpoint(playerid);
        GameTextForPlayer(playerid , \"~g~ Sikeresen elvégezted a ~w~ munkát ! \",5000,1);
        GivePlayerMoney(playerid , 10000);
      }
      return 1;
}

Hogy van helyesen ez a parancs?
« Válasz #1 Dátum: 2013. Január 14. - 21:25:43 »
0 Show voters
Kimásoltam , és utána tettem pawn kódba.
Vagy alapból az elnredezéssel van a baj ?

Hogy van helyesen ez a parancs?
« Válasz #2 Dátum: 2013. Január 14. - 21:27:21 »
0 Show voters
Idézetet írta: SonXeeZ date=1358195143\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"32465\" data-ipsquote-contentclass=\"forums_Topic
Vagy alapból az elnredezéssel van a baj ?
 
Tudtommal ZCMD-t nem zárunk le return 0; -val, szóval azt sem tudom, hogy az mit keres ott.
E: Tehát ez a parancs így nézne ki normálisan:

CMD:munka_banyasz(playerid)
{
if(GetPlayerTeam(playerid) == BANYASZ)
{
new jarmu;
jarmu = GetPlayerVehicleID(playerid);
if(jarmu==486)
{
   SendClientMessage(playerid , COLOR_YELLOW,\"Elkezdtél dolgozni, menj a kijelölt helyekre.\");
   SetPlayerCheckpoint(playerid , -1894.3909,-1750.8854,21.7500,8.5);
   SetPVarInt(playerid,\"banyaszcp\",0);
}
else
{
   SendClientMessage(playerid , COLOR_WHITE,\"Nem ülsz dózerbe , így nem tudod elkezdeni a munkát.\");
}
}
        return 1;
}
« Utoljára szerkesztve: 2013. Január 14. - 21:49:53 írta Virgonc »

Hogy van helyesen ez a parancs?
« Válasz #3 Dátum: 2013. Január 14. - 21:32:10 »
0 Show voters
Köszönöm a segítséget , még elég kezdõ státuszba vagyok a programozás terén.
Kipróbálom így a kódot.
===============
Mikor betettem pawnoba ezt az errort irta :
warning 209: function \"cmd_munka_banyasz\" should return a value
Szóval az utólsó és az utólsó elõtti sorba tettem egy return 1;-et , így már jó volt.
De viszont amikor beléptem a játékba , még mindig semmi változás .
Ha nem ülök dózerbe , akkor kiirja hogy :\" Nem ülsz dózerbe ezért nem tudod elkezdeni a munkát.\", és amikor beleülök , még mindig ugyan ezt az üzenetet adja ki.
« Utoljára szerkesztve: 2013. Január 14. - 21:39:18 írta SonXeeZ »

Hogy van helyesen ez a parancs?
« Válasz #4 Dátum: 2013. Január 14. - 21:43:15 »
+1 Show voters
Bocs, elírtam valamit, frissítettem, próbáld most.

Hogy van helyesen ez a parancs?
« Válasz #5 Dátum: 2013. Január 14. - 21:48:18 »
0 Show voters
Nem jó most sem valamiért  :crazy:
Amikor betettem pawnoba , megint irta az errot , és megint be kellett rakni még 1 return-t.
Beraktam megint , de még most sem jó  :(
(ugyan azok a hibák.)

Hogy van helyesen ez a parancs?
« Válasz #6 Dátum: 2013. Január 14. - 21:49:31 »
+1 Show voters
Ezt esküszöm nem hiszem el.... :facepalm: :facepalm: ??? ennyire fáradt lennék? Megint elírás, bocs, nézd meg most......  :mistrust:

Hogy van helyesen ez a parancs?
« Válasz #7 Dátum: 2013. Január 14. - 21:54:22 »
0 Show voters
Hát , mostmár pawno-ba nem írt ki hibát , de akkor lehet nem csak az elrendezésbe van baj . :(
Mert megint mikor beírom a parancsot , kiírja hogy nem ülök dózerbe , pedig igen.

Hogy van helyesen ez a parancs?
« Válasz #8 Dátum: 2013. Január 14. - 21:57:50 »
0 Show voters
Így esetleg?
 

CMD:munka_banyasz(playerid, params[])
{
    #pragma unused params
    if(GetPlayerTeam(playerid) == BANYASZ)
    {           
            SetPVarInt(playerid, \"Dozer\", GetPlayerVehicleID(playerid));
            if((GetPVarInt(playerid, \"Dozer\") == 486))
            {
                    SendClientMessage(playerid , COLOR_YELLOW,\"Elkezdtél dolgozni, menj a kijelölt helyekre.\");
                    SetPlayerCheckpoint(playerid , -1894.3909,-1750.8854,21.7500,8.5);
                    SetPVarInt(playerid,\"banyaszcp\",0);
            }
            else
            {
                    SendClientMessage(playerid , COLOR_WHITE,\"Nem ülsz dózerbe , így nem tudod elkezdeni a munkát.\");
            }
    }
    return 1;
}

 
E: Frissítettem, most nézd!
« Utoljára szerkesztve: 2013. Január 14. - 22:02:06 írta Virgonc »

Hogy van helyesen ez a parancs?
« Válasz #9 Dátum: 2013. Január 14. - 22:07:01 »
0 Show voters
1 warning még mindig van  :cry3: :cry3: ( valami a returnoknál)
És ha belépek a játékba még mindig semmi változás.. :(

Nem elérhető Casamiro

  • 1046
    • Profil megtekintése
Hogy van helyesen ez a parancs?
« Válasz #10 Dátum: 2013. Január 14. - 22:09:58 »
+1 Show voters
CMD:munka_banyasz(playerid)
{
                if(GetPlayerTeam(playerid) == BANYASZ)
                        {
                        if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 486)
                        {
                                SendClientMessage(playerid , COLOR_YELLOW,\"Elkezdtél dolgozni, menj a kijelölt helyekre.\");
                                SetPlayerCheckpoint(playerid , -1894.3909,-1750.8854,21.7500,8.5);
                                SetPVarInt(playerid,\"banyaszcp\",0);
                        }
                            else
                        {
                        SendClientMessage(playerid , COLOR_WHITE,\"Nem ülsz dózerbe , így nem tudod elkezdeni a munkát.\");
                    }
                        return 1;
    }
                return 0;
}

Hogy van helyesen ez a parancs?
« Válasz #11 Dátum: 2013. Január 14. - 22:14:04 »
0 Show voters
Ne haragudj amugy, faradtan figyelmetlen vagyok.. :(

Hogy van helyesen ez a parancs?
« Válasz #12 Dátum: 2013. Január 14. - 22:14:40 »
+1 Show voters
Megelõztek, de azért egy - két mondatban én is.
Ne keverjétek a jármû modelid-ket a jármûvek vehicleid-vel.
Az egyik a jármû típusára utaló érték a második a jármû sorszáma.
A sorszám alapján lehet megállapítani a jármû típusát.
Tehát:
 
if(GetVehicleModel(GetPlayerVehicleID(playerid)) == 486)

Hogy van helyesen ez a parancs?
« Válasz #13 Dátum: 2013. Január 14. - 22:17:22 »
0 Show voters
Igen , igy már jó , már csak az a baj , hogy csak a 0-ás Checkpointot dobja ki , és utána ha abba belemegyek nem jön új , és csak a pénzt adja , pedig csak a 6. cp nél kellene pénzt adni.
ɐʞzssǝlosz : Köszönöm hogy felvilágosíítottál , mert pont ezt akartam volna megtudni.
És hogyha if(IsPlayerInVehicle(playerid , 586))-al csináltam volna ? Vagy ez is Modellidre vonatkozik ?

Hogy van helyesen ez a parancs?
« Válasz #14 Dátum: 2013. Január 14. - 22:23:35 »
0 Show voters
Az vehicleidre vonatkozik, tehát a szerveren az 586. -nak létrehozott jármûben tartózkodsz-e.
Ott meg kapcsos zárójel elrendezéssel van a gond, tehát lefut az a rész a végén amikor a pénzt adja és véget is ér a verseny az elsõ checkpointnál.
Nézd át újra hogy külön blokkokban legyenek a feladatok.
De próbáld meg switch case utasításokkal megírni sokkal átláthatóbb lesz.
 
      switch(GetPVarInt(playerid,\"banyaszcp\"))
        {
   case 1: // Elsõ CP
   {
      SetPVarInt(playerid,\"banyaszcp\", 2);
   }
   case 2: // Második CP
   {
 
   }
}

 
Edit:
Ne 0-val kezd a cp számozását, mert minden pvar-nak alapból nulla az értéke, kezd egytõl. (Javítottam feljebb)
« Utoljára szerkesztve: 2013. Január 14. - 22:27:59 írta ɐʞzssǝlosz »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal