200 reicht völlig aus ich benutze es so und bisher 0 problemo
Beiträge von NicoAiko
-
-
//OnPlayerCommandText
new tmp[200];
new cmd[200];
new var;//Irgendwo unten oder so
strtok(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}MfG
-
Hier die Strtok-Version
if(strcmp(cmd,"/givegun",true) == 0)
new waffe,munition;
tmp = strtok(cmdtext,var); //musste gucken wie du es hast
if(!strlen(tmp))
return SendClientMessage(playerid,0xFFFFFFFF,"Info: /givegun [Waffen-ID] [Munition]");
waffe = strval(tmp);
tmp = strtok(cmdtext,var);
if(!strlen(tmp))
return SendClientMessage(playerid,0xFFFFFFFF,"Info: /givegun [Waffen-ID] [Munition]");
munition = strval(tmp);
if(waffe == 38 || waffe == 39) return SendClientMessage(playerid,0xFF0000FF,"Diese Waffen kannst du dir nicht geben!");
GivePlayerWeapon(playerid,waffe,munition);
SendClientMessage(playerid,0xFFFFFFFF,"Du hast dir eine Waffe gegeben!");
return 1;
}
MfG -
ähh wenn du abfragen willst ob er healthhack benutzt würde ich das ein klein wenig anders machen...
ocmd:lebencheck(playerid,params[]) // ändere meinetwegen den Namen völlig wurscht
{
if(!IsPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Diesen Befehl kannst du nicht nutzen. Mindestens benötigter Rang: Admin");// Adminabfrage
new Float:Pos[3],inputID,string[128],Float:ATM_Health,Float:ATM_Armour,Float:After_Health; //ATM_Health = Momentanes Leben, ATM_Armour = Momentane Rüstung
if(sscanf(params,"d",inputID)) return SendClientMessage(playerid,BLAU,"/explosion [ID]");//fehlermeldung wenn falsche eingaben
if(!IsPlayerConnected(inputID)) return SendClientMessage(playerid,ROT,"Dieser Spieler ist nicht online!");
GetPlayerHealth(inputID,ATM_Health);
GetPlayerArmour(inputID,ATM_Armour);
GetPlayerPos(inputID,Pos[0],Pos[1],Pos[2]);
SetPlayerHealth(inputID,100);
SetPlayerArmour(inputID,0);
CreateExplosion(Pos[0],Pos[1],Pos[2],11,15); // ich würde eine kleine Explosion empfehlen ^^
GetPlayerHealth(inputID,After_Health);
format(string,sizeof(string),"%s wurde von %s auf Healhack kontrolliert. Leben: %0.2f",SpielerName(inputID),SpielerName(playerid),After_Health);//string
SetPlayerHealth(inputID,ATM_Health);
SetPlayerArmour(inputID,ATM_Armour);
if(!IsPlayerAnAdmin(inputID,1))return 1;
SendClientMessageToAll(BLAU,string);
return 1;
}Dies ist noch ungetestet, außerdem würde ich ihn zu einem anderen Ort porten
Dann kann auch niemandem Anderen etwas passierenFalls ne erklärung nötig ist schreib im thread
-
Ich hab nur das gesagt was ich gehört habe, es musste nicht der Wahrheit entsprechen
Jetzt ist aber die Frage ab wann ist ein Timer schlimmer als OnPlayerUpdate? -
soweit ich weiß ist es total ressourcenfressend OnPlayerUpdate zu benutzen da es IMMER alle 500ms wiederholt wird
D.h.
alles was in dem callback steht wird jede 1/2 Sekunde wiederholt...
Deswegen benutzt man Timer... -
Sie sind in einem interior also musst du bei allen noch LinkVehicleToInterior machen
-
aha naya auf jeden fall würde ich auf das nächste update achten!
Wenn der Bug gefixxt ist würde ich auf SetDeathDropAmount umsteigen -
habs jetzt erst gelesen, dass es momentan nicht geht...
ok vorübergehend muss dann halt die andere Lösung her -
Such im Script einfach nach GivePlayerMoney / dem Geld-Gebe-Befehl (falls es ein Server-seitiges Anti-Money-Hack system gibt)
dann guck wie es gemeint ist und wenn es keinen einfluss auf den Spielverlauf hat bzw. wenn das nicht einfach so von selbst passieren kann das nächste -
mach meine Sache sonst könnten später Bugs auftreten wegen Einfluss von anderen Systemen wie Cop-Systeme usw.
-
setz bei OnGameModeInit folgendes ein
SetDeathDropAmount(0);Dann wird nix mehr abgezogen
-
Was auch noch gut wäre:
public OnVehicleTakeDamageByVehicle(vehicleid,issuerid,Float:amount)
{
return 1;
}
public OnVehicleTakeDamageByPlayer(vehicleid,issuerid,Float:amount,weaponid)
{
return 1;
}
Dann könnte man auch so einige Sachen machen
z.B. damit man einen Anti-Vehicle-Heal-Hack scripten kann -
Außerdem wird bei createlabelonplayer der Label nicht auf dem Spieler attached!
Fazit: Entweder nicht nehmen, ist nicht wirklich hilfreich, oder @Threadersteller bring schnell ein Update raus
-
mach statt new liftmode; -> new bool:liftmode = false;
bei OnGameModeInit
liftmode = false; -
Die Objects die du bewegen willst mit MoveObject der Rest kann mit streamer also CreateDynamicObject usw zusammen
-
mach alles ohne Dynamic!
ab 0.3d funktionieren nur noch die Normalen MoveObjects etc. -
Case Sensitive sag ich nur
-
Zieh du mal dein Röckchen an (Keine Beleidigungen an die russische Kultur ;))
Kann man eine Selbst-Sperr Funktion für Leute wie ihn einfügen?
Naya kann man nur sagen: "SELBST GEMACHTES LEID"MfG
-
Nich schlecht
One Piece FTW!!!