Das wäre von mir!
Will auch ![]()
Das wäre von mir!
Will auch ![]()
So einfach den Befehl schreiben:
if (!strcmp(strget(cmdtext, 0), "/givemoney"))
{
new pID = strval(strget(cmdtext, 1));
new money = strval(strget(cmdtext, 2));
if(!money) return SendClientMessage(playerid,red,"Verwendung: /givemoney [spielerid][Geld]");
GivePlayerMoney(pID, money);
SendClientMessage(playerid, red, "Money has been transfered");
return 1;
}
Nützlich ist bei diesem Code mal relativ ![]()
Es ist mal ein anderer Weg eine Addition/Subtraktion/Multiplikation/Division durchzuführen ![]()
Hier mal ein kleines Makro + eine kleine Funktion:
#define int:%0(%1)=%2; \
%0=Write(%0,%2,%1);
stock Write(int1,int2,int3) {
switch(int3) {
case 0: {
#emit LOAD.S.pri int1
#emit LOAD.S.alt int2
#emit ADD
#emit RETN
}
case 1: {
#emit LOAD.S.pri int1
#emit LOAD.S.alt int2
#emit SUB
#emit RETN
}
case 2: {
#emit LOAD.S.pri int1
#emit LOAD.S.alt int2
#emit SMUL
#emit RETN
}
case 3: {
#emit LOAD.S.pri int1
#emit LOAD.S.alt int2
#emit SDIV
#emit RETN
}
}
return unsigned:0;
}
und so rechnet man damit:
Hier die kleine Liste:
new test = 5;
int:test(0)=5; //0 = plus
printf("%d",test);
//->Output: 10
mfg.
War sicherlich ironie deinerseits !!
Eher eine Hilfe...wenn er das Bild braucht ![]()
ist es möglich mit 17 anzufangen
Ja.
Hier nochmal eine kleine Übersicht: http://www.fahrschule.de/fahren_lernen/Tipp11index.html
mfg. ![]()
Wenn du es nicht hinbekommst, ich habe mal ein bisschen getrickst, hier das Bild:
mfg. ![]()
hFile = fopen("informations.cfg", io_read);
Es muss so heißen:
hFile = fopen("informations.cfg", io_write);
mfg. ![]()
@Schwabbel ist es nun auch überflüssig abzufragen ob der Spieler connected ist?
Leider ja, da es sein kann, dass die höchste spielerid 5 ist, aber der Spieler mit id 4 nicht connected ist ![]()
//Edit:
Haxler:
BlackAce hat mir jetzt gesagt was du meintest, habs geändert ![]()
Aus diesem Grund neue Downloadlinks zum letzten mal ![]()
mfg. ![]()
Formatieren, also Platzhalter wie %s, kann ich jedoch nur mit format "machen", oder ?
Was meinst du mit machen, mach mal ein konkretes Beispiel, was du meinst ![]()
Wie meinst du mit strcat? Also wie nutzt man das da?
Na, zum Beispiel so:
strcat(pInfo[playerid][pKey], Key);
mfg. ![]()
und was wollte er mir damit sagen?
Genau das, was Blackace gesagt hat ![]()
ist sinnlos, da du Defines nicht zur Laufzeit ändern kannst.
#define m_players HighestID
würde reichen.
Nein, das ist notwendig, da der Callback ja immer wieder aufgerufen wird und somit das Makro wieder undefined werden muss...
PS:
Mir ist ein kleiner Logikfehler unterlaufen...
Jetzt hab ich das alles getestet und so wie es jetzt ist funktioniert es perfekt, davor war ein kleiner Fehler drinnen ![]()
mfg. ![]()
Danke schön. Gleichmal gedownloadet ^^. Aber eine Frage also ist das wie MAX_PLAYERS nur schneller oder?
(( Sorry für diese Frage aber will das ja richtig verstehen
))
Nun im Prinzip ist es wie MAX_PLAYERS nur kleiner ![]()
MAX_PLAYERS hat einen konstanten Wert von 500 (eigentlich) und mein Makro ändert sich jenachdem wie viele Spieler auf dem Server sind ![]()
Deshalb wichtig: Nur für Spieler Schleifen einsetzen, nicht für Arrays (strings)!
mfg. ![]()
PS: Wie oft hast du langeweile ?
Zu oft...viel zu oft ![]()
Schick gemacht.
Danke ![]()
mfg. ![]()
So, ich musste nochmal was umändern, da ich Makros vertauscht hatte ![]()
Bitte wenn ihr sie schon gedownloadet habt, erneuern ![]()
mfg. ![]()
Du musst reason so deklarieren:
reason[128];
mfg. ![]()
Hier mal kurz aus dem Kopf geschrieben:
ocmd:gethere(playerid, params[]) {
if(!isPlayerAnAdmin(playerid,3)) return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
new pID,Float:Q[3];
if(sscanf(params,"u",pID)) return SendClientMessage(playerid,rot,"Verwendung: /gethere [spielerid]");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Dieser Spieler ist nicht online!");
GetPlayerPos(playerid,Q[0],Q[1],Q[2]);
if(IsPlayerInAnyVehicle(pID)) SetVehiclePos(GetPlayerVehicleID(pID),Q[0],Q[1]+3,Q[2]),LinkVehicleToInterior(GetPlayerVehicleID(pID),GetPlayerInterior(playerid)),SetVehicleVirtualWorld(GetPlayerVehicleID(pID), GetPlayerVirtualWorld(playerid));
else SetPlayerPos(pID,Q[0],Q[1]+1,Q[2]);
SetPlayerInterior(pID,GetPlayerInterior(playerid));
SetPlayerVirtualWorld(pID,GetPlayerVirtualWorld(playerid));
return 1;
}
mfg. ![]()
//Edited Code
Wenn man wirklich mit einer zu intensiven Schleife zu kämpfen hat: Kann auch das unterhalb probiert werden.
Das ist auch eine gute Idee, vielleicht hilft das einigen Usern ![]()
Nicht du schon wieder.. Such dir mal nen Hobby oder sowas.
Aber schaut ganz nett aus. Ich kenn mich damit zwar nicht so aus, aber es schon für mich schon um einiges komplizierter aus
Danke ![]()
mfg. ![]()