Hat sich geklärt, vielen dank!
Geld abziehen sobald spieler bei einer bestimmten Pos ist.
- Aykut
- Geschlossen
- Erledigt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
if(IsPlayerInRangeOfPoint(playerid,radius,PosX,PosY,PosZ)){
new Geld = GetPlayerMoney(playerid);
SetPlayerMoney(Geld - deine Menge an Geld);
return 1;
} -
Ohne einen CMD also, in welchen bereich muss ich es reinschreiben ?
-
kommt drauf an ob du es command machen willst.
wenn ja dann halt
if(!strcmp(cmdtext, "/abziehen", true))
{
if(IsPlayerInRangeOfPoint(playerid,radius,PosX,PosY,PosZ)){
new Geld = GetPlayerMoney(playerid);
SetPlayerMoney(Geld - deine Menge an Geld);
}
return 1;
} -
forward Timer(playerid);
public OnPlayerSpawn(playerid)
{
SetTimerEx("Timer", 1000, true, "i", playerid);
return 1;
}public Timer(playerid)
{
if(!IsPlayerInRangeOfPoint(playerid,radius,x,y,z))return 1;
SetPlayerMoney(playerid,GetPlayerMoney(playerid)-anzahl);
return 1;
}@Madd_Johnson
Er möchte es 1. Ohne command und 2. eine Variable dafür zu erstellen ist unötig -
public OnPlayerSpawn(playerid)
So wie du das machst, ist das suboptimal, da immer ein neuer Timer für den Spieler erstellt wird sobald er spawnt.
Wenn er 1x spawnt pro sek 1x-anzahl..beim 2.x spawnen 2x-anzahl...beim 3.x spawnen 3x-anzahl usw...Somit ist man irgendwann instant im negativen Bereich, wenn man diese Fläche betritt
Somit solltest du den Timer unter OnPlayerConnect starten lassen, da dieser Callback (im Normalfall) nur 1x für den Spieler aufgerufen wird
mfg.
-
breadfish.de
Hat das Thema geschlossen.