Uhm, so wie es halt im Code steht
Ich meine das mit Float:amount, xD. (wegen dem Schaden)
Uhm, so wie es halt im Code steht
Ich meine das mit Float:amount, xD. (wegen dem Schaden)
Ich habe leider ehrlich gesagt das mit amount nicht so wirklich hinbekommen,bei mir kamen dann lauter Errors usw.
Wie hast du es denn umgesetzt?
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
new string[128];
new waffenname[24];
PlayerPlaySound(damagedid,17802,0.0,0.0,0.0);
PlayerPlaySound(playerid,17802,0.0,0.0,0.0);
if(weaponid == 22)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 19 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-19);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 23)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 22 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-22);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 24)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 49 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-49.38);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 25)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 40 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-40);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 26)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 42 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-42);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 27)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 31 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-31);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 28)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 6 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-6);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 29)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 9 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-9);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 30)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 11 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-11);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 31)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 14 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-14);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 32)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 7 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-7);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 33)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 37 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-37);
TextDrawShowForPlayer(playerid,Textdraw0);
}
else if(weaponid == 34)
{
GetWeaponName(weaponid, waffenname, sizeof (waffenname));
format(string, sizeof(string), "Treffer! ~n~ Schaden 56 HP ~n~ Waffe %s",waffenname);
TextDrawSetString(Textdraw0, string);
SetTimerEx("textdrawdelete",3000,0,"");
new Float:health = GetPlayerHealth(damagedid,health);
SetPlayerHealth(damagedid,health-56);
TextDrawShowForPlayer(playerid,Textdraw0);
}
return 1;
}
Das könntest du kürzen.
Den Schaden, welchen du manuell ausgibst, kannst du mithilfe von Float:amount automatisch ausgeben lassen.
SetPlayerHealth ist dann auch überflüssig.
Hitsound-ID: 17802
Habe jetzt deine Variante genommen.
Kann so oder so nicht ins "-" gehen. :>
Vielen Dank euch beiden.
Also bei mir funktioniert es.
Hatte es sonst nur immer mit einer if-Abfrage gemacht (if(DM1[playerid]==1)).
Wie hättest du es denn gemacht @*GHOSTRIDER*:?
Guten Tag,
ich habe folgendes Problem.
Wenn ich eine Arena betrete wird die Variable um 1 erhöht. (Soweit ist alles noch okay), aber ich weiß nicht, wie ich es realisieren kann, dass beim Verlassen der Arena nur dort die Variable um 1 verringert wird, in welcher man auch war.
(Ich setze beim Verlassen - /exit - die Werte aller Arenen auf 0 und wenn ich dann bei /exit bspw. DM1--; und DM2--; mache, wird ja in der Arena, in der man nicht war, trotzdem der Wert verringert)
Ich möchte aber, dass nur der Wert verringert wird, in der Arena, in der man war.
Wie groß ist der string denn?
Ich denke mal er ist zu klein, vergrößere ihn mal.
public OnPlayerText(playerid, text[])
{
new string[128];
format(string, sizeof(string), "%s sagt: %s",SpielerName(playerid),text);
SMessage(playerid, Weiss, string, 20);
return 0;
}
Habe ich mich auch erst gefragt.
Hatte vor kurzem erst noch die Variable auf zwei Dinge bezogen, weshalb immer DM: 1 oder DM: 0 gezeigt wurde.
Dann habe ich eine einzelne Variable erstellt, mit [playerid], jedoch ging dies nicht.
Habe dann deine Variante probiert.
Jetzt geht's. Danke. :>
Guten Tag,
ich wollte via Textdraw ermöglichen, dass man, wenn man eine DM-Arena betritt, der Wert um 1 erhöht wird und wenn man diese verlässt bzw. disconnectet um ein verringert wird.
Das Problem ist jedoch, wenn ein zweiter Spieler in die Arena geht, bleibt es "DM: 1" und wird nicht zu "DM: 2".
Folgendes habe ich geschrieben:
new DM1[MAX_PLAYERS];
Wenn der Spieler die Arena betritt:
DM1[playerid]++; //Variable um ein erhöhen
new string[128];
format(string,sizeof(string),"DM: %d",DM1[playerid]);
TextDrawSetString(Text:Textdraw7,string);
Wenn der Spieler die Arena verlässt:
DM1[playerid]--; //Variable um ein verringert
new string[128];
format(string,sizeof(string),"DM: %d",DM1[playerid]);
TextDrawSetString(Text:Textdraw7,string);
Wenn der Spieler den Server verlässt:
DM1[playerid]--;
Textdraw anzeigen (unter OnPlayerSpawn):
TextDrawShowForPlayer(playerid,Text:Textdraw7);
hier geht es um mehr als nur eine Note.
Worum geht's denn genau, wenn wir dir schon die Arbeit nehmen sollen?
Naja da hab ich viel bessere gesehen (z.B das von Devine_)
Jeder fängt mal klein an.
Und man soll hier nichts von Devine_ bewerten. :>
Mir gefällt es ebenfalls.
Schlicht und nicht zu aufdringlich.
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]=5000);
Laut Code sollte es richtig sein.
Wenn du bereits ein Speichersystem geschrieben hast, kannst du dem User beim Registrieren 5000$ geben.
Zeig mal den Register stock.
Kannst du eigentlich ganz leicht herausfinden.
Screen von machen - Screen öffnen - mit dem Colorpicker rüberfahren - Code im Editor o.ä. aufschreiben
Ich hab den GTA V Background, ansonsten nicht
Ja, den sehe ich so oft, weiß gar nicht mehr, wer den schon alles hatte.
Ein anderer Background wäre nicht schlecht. :>
Also mir gefällt es, aber kann es sein, dass du immer den selben Hintergrund nimmst oder verwechsle ich dich da mit jemand anderes?