-
helló,megírtam egy /heal parancsot,Hogyan tudom lekérdezni,Hogy a játékos(változó ID) Közelben van e?
Script:
CMD:heal(playerid,params[])
{
new ID;
if(sscanf(params,\"u\",ID))return SendClientMessage(playerid,COLOR_RED,\"Használat:/heal [PlayerID]\");
if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader]== 2)
{
SetPlayerHealth(ID,100);
SCM(ID,COLOR_RED,\"Mentõs beadott neked egy inekciót\");
SCM(playerid,COLOR_RED,\"Inekciót sikeresen beadtad!\");
}
else
{
SCM(playerid,COLOR_RED,\"Nem Vagy Mentõs!\");
}
return 1;
}
-
CMD:heal(playerid,params[])
{
new ID,
Float:X,
Float:Y,
Float:Z;
if(sscanf(params,\"u\",ID))return SendClientMessage(playerid,COLOR_RED,\"Használat:/heal [PlayerID]\");
GetPlayerPos(ID, X, Y, Z);
if(!IsPlayerInRangeOfPoint(playerid, 10.0, X, Y, Z)) return SendClientMessage(playerid, COLOR_RED, \"Nem vagy a kiválasztott játékos közelében!\");
if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader]== 2)
{
SetPlayerHealth(ID,100);
SCM(ID,COLOR_RED,\"Mentõs beadott neked egy inekciót\");
SCM(playerid,COLOR_RED,\"Inekciót sikeresen beadtad!\");
}
else return SCM(playerid,COLOR_RED,\"Nem Vagy Mentõs!\");
return 1;
}
-
köszi,ment a plusz,és ennek mi a baja?
felismeri,hogy nincs dutyba,beirom /duty Szolgálataba lép,megint beírom,ugyan az,magyarul else if rész nem müködik,Nem veszi el a fegyót stb..
CMD:duty(playerid, params[])
{
new duty[MAX_PLAYER_NAME];
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 255.3750,77.0106,1003.6406))
{
SendClientMessage(playerid,0xFFFFFFFF,\"Nem vagy a megfelelõ helyen!\");
}
else if(PlayerInfo[playerid][pMember] == 1)
{
if(duty[playerid] == 0)
{
duty[playerid]=1;
GivePlayerWeapon(playerid,3,1);
GivePlayerWeapon(playerid,24,50);
SendClientMessage(playerid,COLOR_RED,\"Szolgálatba léptél!\");
}
else if(duty[playerid] == 1)
{
duty[playerid]=0;
SCM(playerid,COLOR_RED,\"Kiléptél a szolgálatból!\");
ResetPlayerWeapons(playerid);
}
}
else
{
SCM(playerid, COLOR_GREY,\"Nem vagy rendõr!\");
}
return 1;
}
-
Így?
CMD:duty(playerid, params[])
{
new duty[MAX_PLAYER_NAME];
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 255.3750,77.0106,1003.6406))
{
SendClientMessage(playerid,0xFFFFFFFF,\"Nem vagy a megfelelõ helyen!\");
}
if(PlayerInfo[playerid][pMember] == 1)
{
if(duty[playerid] == 0)
{
duty[playerid]=1;
GivePlayerWeapon(playerid,3,1);
GivePlayerWeapon(playerid,24,50);
SendClientMessage(playerid,COLOR_RED,\"Szolgálatba léptél!\");
}
else if(duty[playerid] == 1)
{
duty[playerid]=0;
SCM(playerid,COLOR_RED,\"Kiléptél a szolgálatból!\");
ResetPlayerWeapons(playerid);
}
}
else
{
SCM(playerid, COLOR_GREY,\"Nem vagy rendõr!\");
}
return 1;
}
-
Így?
CMD:duty(playerid, params[])
{
new duty[MAX_PLAYER_NAME];
if(!IsPlayerInRangeOfPoint(playerid, 3.0, 255.3750,77.0106,1003.6406))
{
SendClientMessage(playerid,0xFFFFFFFF,\"Nem vagy a megfelelõ helyen!\");
}
if(PlayerInfo[playerid][pMember] == 1)
{
if(duty[playerid] == 0)
{
duty[playerid]=1;
GivePlayerWeapon(playerid,3,1);
GivePlayerWeapon(playerid,24,50);
SendClientMessage(playerid,COLOR_RED,\"Szolgálatba léptél!\");
}
else if(duty[playerid] == 1)
{
duty[playerid]=0;
SCM(playerid,COLOR_RED,\"Kiléptél a szolgálatból!\");
ResetPlayerWeapons(playerid);
}
}
else
{
SCM(playerid, COLOR_GREY,\"Nem vagy rendõr!\");
}
return 1;
}
sz*rabb mint volt..
-
Egy kis szép tagoltság nem ártana...
#include < a_samp >
#include < zcmd >
new
iDuty[ MAX_PLAYERS ]; // Globális változó, memória takarítás miatt, hogy ne hozza létre minden parancs beírásakor, meg persze az OnPlayerConnect( ... ) miatt.
public OnPlayerConnect( playerid )
{
iDuty[ playerid ] = 0;
return 1;
}
CMD:duty( playerid, params[] )
{
if( IsPlayerInRangeOfPoint( playerid, 3.0, 255.3750,77.0106,1003.6406 ) )
{
if( PlayerInfo[ playerid ] [ pMember ] == 1 )
{
if( iDuty[ playerid ] == 0 )
{
iDuty[ playerid ] = 1;
GivePlayerWeapon( playerid, 3, 1 );
GivePlayerWeapon( playerid, 24, 50 );
SendClientMessage( playerid, COLOR_RED, \"Szolgálatba léptél!\" );
}
else
{
iDuty[ playerid ] = 0;
SCM( playerid, COLOR_RED, \"Kiléptél a szolgálatból!\" );
ResetPlayerWeapons( playerid );
}
}
else SCM( playerid, COLOR_GREY, \"Nem vagy rendõr!\" );
}
else SCM( playerid, COLOR_GREY, \"Nem vagy a megfelelõ helyen!\" );
return 1;
}
-
Az a baja, hogy a Duty változót nem globálisan vetted fel, azaz ha használod a parancsot, mindig 0 értékkel hívódik meg.
-
Egy kis szép tagoltság nem ártana...
#include < a_samp >
#include < zcmd >
new
iDuty[ MAX_PLAYERS ]; // Globális változó, memória takarítás miatt, hogy ne hozza létre minden parancs beírásakor, meg persze az OnPlayerConnect( ... ) miatt.
public OnPlayerConnect( playerid )
{
iDuty[ playerid ] = 0;
return 1;
}
CMD:duty( playerid, params[] )
{
if( IsPlayerInRangeOfPoint( playerid, 3.0, 255.3750,77.0106,1003.6406 ) )
{
if( PlayerInfo[ playerid ] [ pMember ] == 1 )
{
if( iDuty[ playerid ] == 0 )
{
iDuty[ playerid ] = 1;
GivePlayerWeapon( playerid, 3, 1 );
GivePlayerWeapon( playerid, 24, 50 );
SendClientMessage( playerid, COLOR_RED, \"Szolgálatba léptél!\" );
}
else
{
iDuty[ playerid ] = 0;
SCM( playerid, COLOR_RED, \"Kiléptél a szolgálatból!\" );
ResetPlayerWeapons( playerid );
}
}
else SCM( playerid, COLOR_GREY, \"Nem vagy rendõr!\" );
}
else SCM( playerid, COLOR_GREY, \"Nem vagy a megfelelõ helyen!\" );
return 1;
}
1.egy zárást,nyitást vhol elírtál,mindj megkeresem.
2.Nekem ahogy volt,sokkal jobb,átláthatóbb.
3.Látom ismered a SPACE-t
-
Egy kis szép tagoltság nem ártana...
#include < a_samp >
#include < zcmd >
new
iDuty[ MAX_PLAYERS ]; // Globális változó, memória takarítás miatt, hogy ne hozza létre minden parancs beírásakor, meg persze az OnPlayerConnect( ... ) miatt.
public OnPlayerConnect( playerid )
{
iDuty[ playerid ] = 0;
return 1;
}
CMD:duty( playerid, params[] )
{
if( IsPlayerInRangeOfPoint( playerid, 3.0, 255.3750,77.0106,1003.6406 ) )
{
if( PlayerInfo[ playerid ] [ pMember ] == 1 )
{
if( iDuty[ playerid ] == 0 )
{
iDuty[ playerid ] = 1;
GivePlayerWeapon( playerid, 3, 1 );
GivePlayerWeapon( playerid, 24, 50 );
SendClientMessage( playerid, COLOR_RED, \"Szolgálatba léptél!\" );
}
else
{
iDuty[ playerid ] = 0;
SCM( playerid, COLOR_RED, \"Kiléptél a szolgálatból!\" );
ResetPlayerWeapons( playerid );
}
}
else SCM( playerid, COLOR_GREY, \"Nem vagy rendõr!\" );
}
else SCM( playerid, COLOR_GREY, \"Nem vagy a megfelelõ helyen!\" );
return 1;
}
1.egy zárást,nyitást vhol elírtál,mindj megkeresem.
2.Nekem ahogy volt,sokkal jobb,átláthatóbb.
3.Látom ismered a SPACE-t
[/quote]
Képzeld el, hogy hibátlan amit írtam, próbáld csak ki....
Igen, ismerem a Space-t, sokkal átláthatóbb úgy a kód...