Szerző Téma: Jármû kezelés  (Megtekintve 1134 alkalommal)

Jármû kezelés
« Dátum: 2014. augusztus 11. - 01:37:16 »
0 Show voters
Sziasztok!
Szeretnék egy jármûkezelés parancsot írni, viszont nem nagyon akar mûködni.
 
CMD:jarmuvek(playerid)
{
new name[MAX_PLAYER_NAME];
    for(new i = 0; i < MAX_VEHICLES; i++)
{
if(!strcmp(name, VehicleInfo[vTulaj]))
{
    SendClientMessage(playerid, COLOR_ORANGE, \"(( Nincs jármûved! ))\");
}
else
{
   ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"asd\", \"Kiválaszt\", \"Kilép\");
}
}
return 1;
}

 
Szóval állandóan csak a SendClientMessage-t írja ki ha van kocsim ha nem, és azt is 2000-szer.
Mit tudnék csinálni?
Elõre is köszönöm
« Utoljára szerkesztve: 2014. október 19. - 15:55:56 írta Flash »

Nem elérhető ROOCK

  • 183
    • Profil megtekintése
Jármû kezelés
« Válasz #1 Dátum: 2014. augusztus 11. - 03:13:19 »
0 Show voters
én másképp oldottam meg szerintem igy jobb is gondolom lementi a kocsija idjét és hogy van e kocsija inkább igy probálkozz valahogy
 
#include <a_samp>
#include <zcmd>
#define COLOR_ORANGE 0xFFFF00AA
#define DIALOG_KULCS 1
enum pAdat
{
vID1,
vID2,
vTulaj
};
new PlayerInfo[MAX_PLAYERS][pAdat];
CMD:jarmuvek(playerid)
{
if(PlayerInfo[playerid][vTulaj]==0)
{
     SendClientMessage(playerid, COLOR_ORANGE, \"(( Nincs jármûved! ))\");
      }else{
    ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"Infernus\\nMég egy\", \"Kiválaszt\", \"Kilép\");
    }
    return 1;
}
CMD:van(playerid)
{
    PlayerInfo[playerid][vTulaj]=1;
return 1;
}
CMD:inf1(playerid)
{
    PlayerInfo[playerid][vID1]=411;
    SendClientMessage(playerid, COLOR_ORANGE, \"Lehivtad 1. jármûved!\");
return 1;
}
CMD:inf2(playerid)
{
    PlayerInfo[playerid][vID1]=411;
    SendClientMessage(playerid, COLOR_ORANGE, \"Lehivtad 2. jármûved!\");
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_KULCS && response)
    {
      switch(listitem)
      {
case 0:{
new Float:PlayerPos[4];
        GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
        GetPlayerFacingAngle(playerid, PlayerPos[3]);
        CreateVehicle(PlayerInfo[playerid][vID], PlayerPos[0], PlayerPos[1], PlayerPos[2], PlayerPos[3], 0, 3, 120);
}
case 1:{
new Float:PlayerPos[4];
        GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
        GetPlayerFacingAngle(playerid, PlayerPos[3]);
        CreateVehicle(PlayerInfo[playerid][vID], PlayerPos[0], PlayerPos[1], PlayerPos[2], PlayerPos[3], 3, 0, 120);
}
  }
     }
     return 1;
}
« Utoljára szerkesztve: 2014. augusztus 11. - 03:24:16 írta ROOCK »

Jármû kezelés
« Válasz #2 Dátum: 2014. augusztus 11. - 12:57:46 »
0 Show voters
Nem értem mit akarsz ezzel :/

Jármû kezelés
« Válasz #3 Dátum: 2014. augusztus 11. - 13:15:05 »
0 Show voters
CMD:jarmuvek(playerid)
{
new name[MAX_PLAYER_NAME],bool:nemiszerv = false;
    for(new i = 0; i < MAX_VEHICLES; i++)
{
if(!strcmp(name, VehicleInfo[vTulaj]))
{
    nemiszerv=false;
}
else
{
   nemiszerv=true;
}
}
        if(nemiszerv == true) return ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"asd\", \"Kiválaszt\", \"Kilép\");
        if(nemiszerv == false) return SendClientMessage(playerid, COLOR_ORANGE, \"(( Nincs jármûved! ))\");
return 1;
}

Jármû kezelés
« Válasz #4 Dátum: 2014. augusztus 11. - 13:41:46 »
0 Show voters
Nem jó, mert ha van jármûvem akkor is azt írja, hogy nincs.

Jármû kezelés
« Válasz #5 Dátum: 2014. augusztus 11. - 14:23:11 »
0 Show voters
Bocsi, attól még ez a script hibátlan :)
Az a baj, hogy nem állítottad be a \"VehicleInfo[vTulaj]\" értékét ahol megszerzi a player a jármûvet

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Jármû kezelés
« Válasz #6 Dátum: 2014. augusztus 11. - 15:37:49 »
0 Show voters
CMD:jarmuvek(playerid)
{
        new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME); // ezt hagytad ki :)   
    for(new i = 0; i < MAX_VEHICLES; i++)
        {
                if(!strcmp(name, VehicleInfo[vTulaj]))
                {
                    SendClientMessage(playerid, COLOR_ORANGE, \"(( Nincs jármûved! ))\");
                }
                else
                {
                        ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"asd\", \"Kiválaszt\", \"Kilép\");
                }
        }
        return 1;
}

 
[mod]Javítottam a

taget

tagre![/mod]
« Utoljára szerkesztve: 2014. augusztus 19. - 14:56:28 írta Dfoglalo »

Jármû kezelés
« Válasz #7 Dátum: 2014. augusztus 11. - 15:59:23 »
+1 Show voters
Idézetet írta: Pedró date=1407764269\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50003\" data-ipsquote-contentclass=\"forums_Topic

CMD:jarmuvek(playerid)
{
        new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME); // ezt hagytad ki :)   
    for(new i = 0; i < MAX_VEHICLES; i++)
        {
                if(!strcmp(name, VehicleInfo[vTulaj]))
                {
                    SendClientMessage(playerid, COLOR_ORANGE, \"(( Nincs jármûved! ))\");
                }
                else
                {
                        ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"asd\", \"Kiválaszt\", \"Kilép\");
                }
        }
        return 1;
}

 
[mod]Javítottam a

taget

tagre![/mod]
 
igen, ez 2ezerszer kiírja neki, hogy nincs jármûve :D
« Utoljára szerkesztve: 2014. augusztus 19. - 14:56:53 írta Dfoglalo »

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Jármû kezelés
« Válasz #8 Dátum: 2014. augusztus 11. - 17:09:43 »
0 Show voters
Idézetet írta: Pedró date=1407764269\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"50003\" data-ipsquote-contentclass=\"forums_Topic

CMD:jarmuvek(playerid)
{
        new name[MAX_PLAYER_NAME];
        GetPlayerName(playerid, name, MAX_PLAYER_NAME); // ezt hagytad ki :)   
    for(new i = 0; i < MAX_VEHICLES; i++)
        {
                if(!strcmp(name, VehicleInfo[vTulaj]))
                {
                    SendClientMessage(playerid, COLOR_ORANGE, \"(( Nincs jármûved! ))\");
                }
                else
                {
                        ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"asd\", \"Kiválaszt\", \"Kilép\");
                }
        }
        return 1;
}

 
[mod]Javítottam a

taget

tagre![/mod]
 
Ha végigmész minden jármûvön, és ha az egyiknek nem õ a tulaja, akkor neki ki fogja írni, hogy nincs jármûve. Hol ebben a logika?
Valahogy így:
 
CMD:jarmuvek(playerid)
{
        new name[MAX_PLAYER_NAME];
        new mennyikocsi = MAX_VEHICLES;
        GetPlayerName(playerid, name, MAX_PLAYER_NAME); // ezt hagytad ki :)   
    for(new i = 0; i < MAX_VEHICLES; i++)
        {
                if(!strcmp(name, VehicleInfo[vTulaj]))
                {
                        mennyikocsi --;
                }
                else
                {
                        ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"asd\", \"Kiválaszt\", \"Kilép\");
                }
        }
        if(mennyikocsi == 0) return SendClientMessage(playerid, -1, \"(( Nincs jármûved! ))\");
        return 1;
}
« Utoljára szerkesztve: 2014. augusztus 19. - 14:57:13 írta Dfoglalo »

Nem elérhető Pedró

  • 3341
  • 2014 © Az év Szkriptere
    • Profil megtekintése
Jármû kezelés
« Válasz #9 Dátum: 2014. augusztus 11. - 18:10:47 »
0 Show voters
menjetekmár. én csak azt javítottam ki neki, hogy kérje el a nevét. a fenti kódhoz írtam egy sort..

Jármû kezelés
« Válasz #10 Dátum: 2014. augusztus 11. - 18:38:52 »
0 Show voters
Biztos, hogy lekéri rendesen a tulajt mert egy másik parancsnál ahol beindítom a jármûvet, úgyszint kell a tulaj neve, és ott mûködik rendesen. Szóval pawnoba lehet, hogy a script hibátlan de játékon belül meg bugos.

Nem elérhető ROOCK

  • 183
    • Profil megtekintése
Jármû kezelés
« Válasz #11 Dátum: 2014. augusztus 12. - 00:03:17 »
0 Show voters
csináld meg 2 változósra kérd le hogy van e kocsija




if(vankocsi[playerid]==1){
}else{
SendClientMessage(playerid, COLOR_ORANGE, \"(( Nincs jármûved! ))\");
}

 
 
elõhozza a dialogot ha van akkor lekéred hogy melyik autója van és kész




ShowPlayerDialog(playerid, DIALOG_KULCS, DIALOG_STYLE_LIST, \"Jármûvek\", \"asd\", \"Kiválaszt\", \"Kilép\");
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
        if(dialogid == DIALOG_KULCS{
      switch(listitem){
                case 0:{
                new Float:PlayerPos[4];
                GetPlayerPos(playerid, PlayerPos[0], PlayerPos[1], PlayerPos[2]);
                GetPlayerFacingAngle(playerid, PlayerPos[3]);
                CreateVehicle(Jarmu[playerid], PlayerPos[0], PlayerPos[1], PlayerPos[2], PlayerPos[3], szin1, szin2, 120);
                /*azt itt meg lehivod abba a pozicióba ahol vagy az a kocsit ameik a tied*/
                }

 
 
lehet ez kicsit bonyolultabb vagy felesleges de szerintem igy jó lenne :)
« Utoljára szerkesztve: 2014. augusztus 12. - 00:05:58 írta ROOCK »

Jármû kezelés
« Válasz #12 Dátum: 2014. augusztus 12. - 00:29:21 »
0 Show voters
Az a baj, hogy valahogy a kocsit nem kéri le..
A jármû indításnál sima GetPlayerVehicleID(playerid), és onnantól csak azt a fájlt piszkálja, de itt nem. :/

Dupla hozzászólás automatikusan összefûzve. ( 2014. augusztus 13. - 18:01:17 )

Valakinek valami ötlet?  :angel: :angel:
« Utoljára szerkesztve: 2014. augusztus 13. - 18:01:17 írta ProPeti »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal