Beitrag von Almaz ()
Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
SetTimerEx("Callback",60000,true,"i",1,playerid);
Jede Minute wird das Public "Callback" nun aufgerufen und playerid wird übergeben.
Ich weiß nicht was du aufrufen willst?
new wtimer[playerid];
forward wtimerset(spielerid);
public wtimerset(spielerid)
{
wtimer[playerid] = 1;
}
ocmd:disweapon(playerid,params[])
{
if(wtimer[playerid] = 0)return SendClientMessage(playerid,GRAU,"Warte 1 Minute!");
if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,GRAU,"Du darfst nicht in einem Fahrzeug sitzen!");
new f = MAX_WAFFENDROP+1,GunID = GetPlayerWeapon(playerid),GunAmmo = GetPlayerAmmo(playerid), string[128];
new Float:X, Float:Y, Float:Z;
if(GunID > 0 && GunAmmo != 0)
{
for(new a = 0; a < MAX_WAFFENDROP; a++)
{
if(dGunData[a][ObjPos][0] == 0.0)
{
f = a;
break;
}
}
if(GunID == 27)
{
RemovePlayerWeapon(playerid,GunID);
SendClientMessage(playerid, -1, "{FE2E2E}Diese Waffe kann nicht fallen gelassen werden. Sie wurde aus deinem Inventar gelöscht!");
return 1;
}
RemovePlayerWeapon(playerid,GunID);
dGunData[f][ObjData][0] = GunID;
dGunData[f][ObjData][1] = GunAmmo;
GetPlayerPos(playerid,dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]);
dGunData[f][ObjID] = CreateDynamicObject(GunObjects[GunID],dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]-1,93.7,120.0,120.0);
format(string,sizeof(string),"** %s lässt etwas fallen! **",SpielerName(playerid));
WaffenPickup = CreatePickup(1274, 2, Float:X, Float:Y, Float:Z, -1);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SetTimerEx("wtimerset",60000,true,"i",1,playerid);
wtimer[playerid] = 0;
return 1;
}
return SendClientMessage(playerid,GRAU,"Du hast keine Waffe in der Hand!");
}
UNGETESTET
forward wtimerset(spielerid);
public wtimerset(spielerid)
{
wtimer[playerid] = 1;
}
zu
forward wtimerset(playerid);
public wtimerset(playerid)
{
wtimer[playerid] = 1;
}
Alles anzeigen
klappt leider immer noch nicht, immer noch paar Fehler
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(88158) : error 017: undefined symbol "playerid"
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(88158) : error 009: invalid array size (negative, zero or out of bounds)
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(88168) : warning 211: possibly unintended assignment
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(88169) : warning 217: loose indentation
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(88196) : warning 217: loose indentation
C:\Users\suleyman\Desktop\John Script\gamemodes\John.pwn(88198) : warning 217: loose indentation
Zeile 88168 - 88169 - 88196 Bitte posten
Wozu einen Timer?
Mach es so:
ocmd:disweapon(playerid,params[])
{
if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,GRAU,"Du darfst nicht in einem Fahrzeug sitzen!");
if(gettime() < SpielerInfo[playerid][pDropGun])return SendClientMessage(playerid,GRAU,"Du kannst deine Waffen nur jede Minute fallen lassen!");
new f = MAX_WAFFENDROP+1,GunID = GetPlayerWeapon(playerid),GunAmmo = GetPlayerAmmo(playerid), string[128];
new Float:X, Float:Y, Float:Z;
if(GunID > 0 && GunAmmo != 0)
{
for(new a = 0; a < MAX_WAFFENDROP; a++)
{
if(dGunData[a][ObjPos][0] == 0.0)
{
f = a;
break;
}
}
if(GunID == 27)
{
RemovePlayerWeapon(playerid,GunID);
SendClientMessage(playerid, -1, "{FE2E2E}Diese Waffe kann nicht fallen gelassen werden. Sie wurde aus deinem Inventar gelöscht!");
return 1;
}
RemovePlayerWeapon(playerid,GunID);
dGunData[f][ObjData][0] = GunID;
dGunData[f][ObjData][1] = GunAmmo;
GetPlayerPos(playerid,dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]);
dGunData[f][ObjID] = CreateDynamicObject(GunObjects[GunID],dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]-1,93.7,120.0,120.0);
format(string,sizeof(string),"** %s lässt etwas fallen! **",SpielerName(playerid));
WaffenPickup = CreatePickup(1274, 2, Float:X, Float:Y, Float:Z, -1);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
SpielerInfo[playerid][pDropGun] = gettime() + (1*60);
return 1;
}
return SendClientMessage(playerid,GRAU,"Du hast keine Waffe in der Hand!");
}
Oben bei deinen SpielerDaten halt noch pDropGun hinzufügen.
Da wo der Rest ist, sprich pAdmin usw.
Keine Ahnung wie das bei dir aufgebaut ist
pDropGun in deiner Enum-Struktur hinzufügen.
mach es einfach so:
new pDropGun[MAX_PLAYERS];
ocmd:disweapon(playerid,params[])
{
if(IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,GRAU,"Du darfst nicht in einem Fahrzeug sitzen!");
if(gettime() < pDropGun[playerid])return SendClientMessage(playerid,GRAU,"Du kannst deine Waffen nur jede Minute fallen lassen!");
new f = MAX_WAFFENDROP+1,GunID = GetPlayerWeapon(playerid),GunAmmo = GetPlayerAmmo(playerid), string[128];
new Float:X, Float:Y, Float:Z;
if(GunID > 0 && GunAmmo != 0)
{
for(new a = 0; a < MAX_WAFFENDROP; a++)
{
if(dGunData[a][ObjPos][0] == 0.0)
{
f = a;
break;
}
}
if(GunID == 27)
{
RemovePlayerWeapon(playerid,GunID);
SendClientMessage(playerid, -1, "{FE2E2E}Diese Waffe kann nicht fallen gelassen werden. Sie wurde aus deinem Inventar gelöscht!");
return 1;
}
RemovePlayerWeapon(playerid,GunID);
dGunData[f][ObjData][0] = GunID;
dGunData[f][ObjData][1] = GunAmmo;
GetPlayerPos(playerid,dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]);
dGunData[f][ObjID] = CreateDynamicObject(GunObjects[GunID],dGunData[f][ObjPos][0],dGunData[f][ObjPos][1],dGunData[f][ObjPos][2]-1,93.7,120.0,120.0);
format(string,sizeof(string),"** %s lässt etwas fallen! **",SpielerName(playerid));
WaffenPickup = CreatePickup(1274, 2, Float:X, Float:Y, Float:Z, -1);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
pDropGun[playerid] = gettime() + (1*60);
return 1;
}
return SendClientMessage(playerid,GRAU,"Du hast keine Waffe in der Hand!");
}
Wer dies so?
enum pDropGun
{
};
Nein.
Such mal nach pAdmin oder so, dort in den Enum packste dann pDropGun rein.