-
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
-
é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;
}
-
Nem értem mit akarsz ezzel :/
-
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;
}
-
Nem jó, mert ha van jármûvem akkor is azt írja, hogy nincs.
-
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
-
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]
-
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
-
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;
}
-
menjetekmár. én csak azt javítottam ki neki, hogy kérje el a nevét. a fenti kódhoz írtam egy sort..
-
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.
-
csináld meg 2 változósra kérd le hogy van e kocsija