Weil wenn ich GivePlayerMoney(playerid,-500); mache dann kann ich ja nicht
sInfo[playerid][Money] += money machen
Doch, das klappt, da mathematisch ein +- zu - wird.
Beispiel:
5 +- 3 = 2
Weil wenn ich GivePlayerMoney(playerid,-500); mache dann kann ich ja nicht
sInfo[playerid][Money] += money machen
Doch, das klappt, da mathematisch ein +- zu - wird.
Beispiel:
5 +- 3 = 2
@reaL. Es ist doch im Video das Problem gezeigt. Das neue Objekt wird erst nach Bewegung des Spielers/Autos Sichtbar.
https://youtu.be/UNykTTPcEvA
Irgendein Spieler @Jeffry.
stock IsAnyPlayerInRangeOfPlayer(playerid, Float:range)
{
if(!IsPlayerConnected(playerid)) return 0;
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || IsPlayerNPC(i) || i == playerid) continue;
if(IsPlayerInRangeOfPoint(i, range, x, y, z)) return 1;
}
return 0;
}
Dann kannst du es so nutzen:
if(IsAnyPlayerInRangeOfPlayer(playerid, 5.0))
{
SendClientMessage(playerid, 0xFF0000FF, "Error: Dir ist jemand zu nahe.");
return 1;
}
und wie spiel ich es dann ab?
also bei Dropbox
und wie spiel ich es dann ab?
also bei Dropbox
Über den direkten Link:
http://www.heise.de/ct/hotline…ropbox-Datei-2065203.html
Während du mir geantwortest hast, hatte ich doch eine Idee mit IsPlayerInRangeOfPoint. Ist deine Version effektiver?
Meine sieht so aus (ungetestet):
CMD:respawn(playerid, params[]) {
new Float:hp;
new playerID, Float:Pos[3] ;
GetPlayerHealth(playerid,hp);
GetPlayerPos(playerID,Pos[0],Pos[1],Pos[2]);
if (hp < 70.0)
{
SendClientMessage(playerid, -1,"{FF1717}ERROR:{FFFFFF} You need at least {FF0000}70 HP{FFFFFF} to change your Spawn.");
return 1;
}
if (IsPlayerInRangeOfPoint(playerid, 5.0, Pos[0], Pos[1], Pos[2]))
{
SendClientMessage(playerid, -1,"{FF1717}ERROR:{FFFFFF} You can't respawn yourself if a player is to close.");
return 1;
}
else
if(BlockRespawn[playerid] > gettime()) return
SendClientMessage(playerid,-1, "{FF1717}ERROR:{FFFFFF} Wait {FF1717}60{FFFFFF} seconds till you can respawn yourself again.");
{
BlockRespawn[playerid] = gettime() + 60;
SetPlayerRandomPos(playerid);
SendClientMessage(playerid,-1, "Respawned succesfully.");
}
return 1;
}
Ist deine Version effektiver?
Deine Version fragt nur die Distanz zum Spieler selbst ab, die ist immer 0, daher wird es nie gehen.
Nutze die Funktion, die ich dir gegeben habe.
Wenn du auch GetPlayerMoney dafür nutzen willst, dann musst du das auch hooken:
stock my_GetPlayerMoney(playerid)
{
if(playerid < 0 || playerid >= sizeof(sInfo)) return 0;
return sInfo[playerid][Money];
}
#if defined _ALS_GetPlayerMoney
#undef GetPlayerMoney
#else
#define _ALS_GetPlayerMoney
#endif
#define GetPlayerMoney my_GetPlayerMoney
habe jetzt die musik nur sie spielt nicht ab
hier der link wenn es weiterhilft
https://dl.dropboxusercontent.com/content_link/K2z5yhHfMUvepacqLzt2PnKz6N2zZDD6Nd2fqAfuccTswHKAPy2HNFZqrOV1dHZP/file
Es gibt dort ja auch nichts abzuspielen.
Ich geh auf den Link und bekomme einen 403 Error
Jetze steht in der Datenbank 4999 und es wird auch 4999 geprintet habe aber ingame nichts
[30/01/2016 23:33:53] 4999
[30/01/2016 23:33:53] 4999
[30/01/2016 23:33:53] 1 sInfo 4999
[30/01/2016 23:33:53] Get 4999
stock my_GivePlayerMoney(playerid, money)
{
printf("%d",money);
sInfo[playerid][Money] += money;
printf("%d",sInfo[playerid][Money]);
return 1;
}
#if defined _ALS_GivePlayerMoney
#undef GivePlayerMoney
#else
#define _ALS_GivePlayerMoney
#endif
#define GivePlayerMoney my_GivePlayerMoney
stock my_GetPlayerMoney(playerid)
{
if(playerid < 0 || playerid >= sizeof(sInfo)) return 0;
return sInfo[playerid][Money];
}
#if defined _ALS_GetPlayerMoney
#undef GetPlayerMoney
#else
#define _ALS_GetPlayerMoney
#endif
#define GetPlayerMoney my_GetPlayerMoney
Alles anzeigen
bei mir kommt bei dem Link die Musik O.o
Womöglich, weil du in deinem Dropbox Account eingeloggt bist.
und wie mache ich das das das alle hören wenn die den link haben
Du musst die Datei freigeben/teilen/... wie auch immer es bei Dropbox heißt.
Jetze steht in der Datenbank 4999 und es wird auch 4999 geprintet habe aber ingame nichts
Füge in der my_GivePlayerMoney Funktion noch
GivePlayerMoney(playerid, money);
ein, damit du das Geld bekommst.
Geladen wird jetze alles richtig aber wenn ich das Befehl ausführe wird zwar mein Geld ingame abgezogen aber kein Print
ocmd:money(playerid)
{
GivePlayerMoney(playerid,-500);
return 1;
}
//=====================================================================================================================================================
//=====================================================================================================================================================
//GivePlayerMoney
stock my_GivePlayerMoney(playerid, betrag)
{
sInfo[playerid][Money] += betrag;
printf("%d",sInfo[playerid][Money]);
return GivePlayerMoney(playerid, betrag);
}
#if defined _ALS_GivePlayerMoney
#undef GivePlayerMoney
#else
#define _ALS_GivePlayerMoney
#endif
#define GivePlayerMoney my_GivePlayerMoney
Alles anzeigen
Die hooks müssen ganz oben im Code stehen, vor der ersten Nutzung von GivePlayerMoney und GetPlayerMoney. Sonst geht es nicht.
Daher bietet es sich an, sie in eine Include zu schreiben, da die ja meistens ganz oben stehen.
Wie schreibe ich mir ein Include ?
Mit freundlichen Grüßen
reaL.
Kopiere eine vorhandene Include, benenne sie so wie sie heißen soll und füge deinen gewünschten Code dort ein.
Dann schreibe sie wie die anderen Includes oben in den Code.