Wieso?
Dann speichert er 0 in die Variable, sollte doch normal funktionieren...
Dann gibt er ihm 10 Leben, er ist aber schon tot, er respawnt wieder...
Ich versteh den Sinn nicht sorry
Wieso?
Dann speichert er 0 in die Variable, sollte doch normal funktionieren...
Dann gibt er ihm 10 Leben, er ist aber schon tot, er respawnt wieder...
Ich versteh den Sinn nicht sorry
if(GetPlayerHealth(playerid, player_Health))
Warum sollte das nicht erfolgreich sein?
Darf ich dich fragen, Red Jocker, warum du in einer If-Abfrage die
Leben des Spielers in die Variable speicherst?
Und warum du so eine seltsame Formatierung hast...
stock RJ_AddHealth(playerid, Float:health)
{
new Float:player_Health;
GetPlayerHeahtl(playerid,player_Health);
SetPlayerHealth(playerid, player_Health+health);
return 1;
}
So wäre der stock kürzer und doch genau dasselbe, oder?
|\/|4554|<|<4
Solche Namen sind doch bescheuert
Alles anzeigen??
Du fragst ab ob die Variable true ist - also wenn er schreiben darf. Dann returnst du, dass er nur alle 60 Sekunden schreiben darf, obwohl du abfragst, ob er true ist?
Und dann als Sahnehäubchen setzt du das ganze nochmal auf true. ??
//Bei dem /h Command:
if(darfspielerschreiben[playerid]==false) return SendClientMessage(playerid,COLOR_RED,"Du darfst nur alle 60 Sekunden schreiben.");
SetTimerEx("htimer",60000,false,"i",playerid);
darfspielerschreiben[playerid]=true;
lg
P.S: Wenn ich schwachsinn rede, Sagen, dann Lösche ich es xD
Die Variable müsste eigentlich "Darfspielerschreiben" heißen.
Wenn er NICHT reden darf, bekommt er die Nachricht "Du darfst nur alle 60 Sekunden schreiben".
Wenn er reden darf, redet er und startet dabei den Timer.
Von nun an darf er 60 Sekunden nicht reden, also wird die Variable "Darfspielerschreiben" auf false gsetzt.
versucht der User jetzt mit /h zu schreiben, kommt die SendClientMessage und das wars.
Er darf nicht /h schreiben.
Nachdem 60 Sekunden vorbei sind wird die Variable wieder auf false gsetzt,
damit der Spieler wieder schreiben kann.
Du musst einen Timer an dem Zeitpunkt starten, wo er etwas geschrieben hat.
SetTimerEx("htimer",60000,false,"i",playerid);
Dann musst einen neuen Public erstellen.
forward htimer(playerid);
public htimer(playerid)
{
return 1;
}
Wenn der Timer abgelaufen ist, darf er wieder schreiben.
Dafür benötigen wir eine Variable.
new bool:darfspielerschreiben[MAX_PLAYERS];
//Bei dem /h Command:
if(darfspielerschreiben[playerid]==true) return SendClientMessage(playerid,COLOR_RED,"Du darfst nur alle 60 Sekunden schreiben.");
SetTimerEx("htimer",60000,false,"i",playerid);
darfspielerschreiben[playerid]=true;
// Bei dem Timer:
forward htimer(playerid);
public htimer(playerid)
{
darfspielerschreiben[playerid]=false;
return 1;
}
Mach doch einfach:
new rank=RANK DES AKTUELLEN SPIELERS HERAUSLESEN;
GivePlayerMoney(playerid,rank*500);
Wenn man stirbt, speicherst du die Position des Spielers in einer Variable.
Wenn ein Sanitäter online ist, dann setzt du den Spieler nach dem respawnen
an die Koordinaten mit einer Animation und rufst den Notdienst.
if(strcmp(cmd, "/repair", true) == 0)
{
if(JobDuty[playerid] != 1) return 1;
if(PlayerInfo[playerid][pLeader] != 18 && PlayerInfo[playerid][pMember] != 18) return 1;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_LIGHTBLUE, "Benutze: /repair [SpielerID] [Preis]");
new playa,money;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
money = strval(tmp);
if(money < 1 || money > 2000) return SendClientMessage(playerid, COLOR_GREY, "Repairpreis kann max. $2000 betragen!");
if(!IsPlayerConnected(playa)) return SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist offline.");
if(playa == INVALID_PLAYER_ID) return 1;
if(!ProxDetectorS(8.0, playerid, playa)|| !IsPlayerInAnyVehicle(playa)) return SendClientMessage(playerid, COLOR_GREY, "Spieler nicht in deiner Nähe.");
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "* Du bietest %s an sein Auto für $%d zu reparieren.",giveplayer,money);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Mechaniker %s bietet dir an dein Auto für $%d zu reparieren, (Benutze /accept repair) zum akzteptieren.",sendername,money);
SendClientMessage(playa, COLOR_LIGHTBLUE, string);
RepairOffer[playa] = playerid;
RepairPrice[playa] = money;
return 1;
}
Das wäre so meine Lösungsvariante..
SetPlayerInterior(playerid,20);
//----------------------------------[Betreten]-----------------------------------------------//
new psender[MAX_PLAYER_NAME];
new string2[200];
GetPlayerName(playerid, psender, sizeof(psender));
if(strfind(psender,"_",false)==-1)
{
SendClientMessage(playerid, COLOR_WHITE, "Dein Name ist nicht in diesem Style: Name_Vorname");
Kick(playerid);
}
format(string2, sizeof(string2), "**{E1BA4F}%s {99989C}hat den Server betreten.{FFFFFF}", psender);
SendClientMessageToAll(COLOR_WHITE, string2);
//---------------------------------------------------------------------------------//
Ich mach peinliche Fehler sorry
Du speicherst die Position von Spieler (Beispiel: GTAzocker) in einer Variable.
Dann erstellst du genau an dem Punkt, wo der Spieler GTAzocker sich befindet
einen Checkpoint für ihn. Er ist in dem Checkpoint, deswegen wird der Callback
"OnPlayerEnterCheckpoint" aufgerufen.
Du speicherst die Koordinaten eines Spielers und setzt
an dieser Stelle einen Checkpoint.
Dannach wird der Callback "OnPlayerEnterCheckpoint" aufgerufen,
was steht dadrin?
if(strfind(name,"_",false)==-1)
So müssts gehen
//----------------------------------[Betreten]-----------------------------------------------//
new psender[MAX_PLAYER_NAME];
new string2[200];
GetPlayerName(playerid, psender, sizeof(psender));
if(!strfind(name,"_",false)!=-1)
{
SendClientMessage(playerid, COLOR_WHITE, "Dein Name ist nicht in diesem Style: Name_Vorname");
Kick(playerid);
}
format(string2, sizeof(string2), "**{E1BA4F}%s {99989C}hat den Server betreten.{FFFFFF}", psender);
SendClientMessageToAll(COLOR_WHITE, string2);
//---------------------------------------------------------------------------------//
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
if(strfind(name,"_",false)!=-1) return 1;
Kick(playerid);
return 1;
}
Fast, lösch ein "if(!strfind(name,"_",false)!=-1)" und rücke die Zeilen noch richtig ein.
Also so:
public OnPlayerConnect(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(name,sizeof(name));
if(!strfind(name,"_",false)!=-1)
{
Kick(playerid);
}
return 1;
}
Der Spieler connected.
Du musst nun prüfen ob in seinem Namen ein "_" enthalten ist.
Erstmal den Namen des Spielers in einen String speichern:
new name[MAX_PLAYER_NAME];
GetPlayerName(name,sizeof(name));
Nun musst du mit dem Befehl strfind ein _ suchen.
if(!strfind(name,"_",false)!=-1)
name = Den String den du durchsuchen möchtest
"_" = Das Wort/Zeichen dass du suchen möchtest.
false = Groß-und Kleinschreibung beachten
! = Wenn er das NICHT findet!
if(!strfind(name,"_",false)!=-1)
{
Kick(playerid);
}
for(new p=0; p < MAX_PLAYERS; p++)
{
if(!IsPlayerConnected(p)||Eingeloggt[p]==true) continue;
SavePlayer(p);
}