OK aber wie mache ich das dann mit der
sInfo[playerid][Money]
Weil wenn ich GivePlayerMoney(playerid,-500); mache dann kann ich ja nicht
sInfo[playerid][Money] += money machen
[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
-
-
-
sInfo[playerid][Money] += money machen
So nicht, aber so:
sInfo[playerid][Money] -= 500;
So werden von "Money" 500 abgezogen.@[LnD]JustMe.77
Dafür kannst du ja dann GetPlayerPos verwenden. Du gehst einfach durch alle Spieler (Schleife) und dann kannst du mithilfe von GetPlayerPos die Koordinaten ermitteln und dann die Abfrage mit IsPlayerInRangeOfPoint machen. -
Weil wenn ich GivePlayerMoney(playerid,-500); mache dann kann ich ja nicht
sInfo[playerid][Money] += money machenDoch, 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 4999Code
Alles anzeigenstock 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
-
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
Code
Alles anzeigenocmd: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