Ja wie erstellt man so einen Befehl denn??
Hoffe auf schnelle Hilfe
Ja wie erstellt man so einen Befehl denn??
Hoffe auf schnelle Hilfe
Wenn du schon einen /makeadmin-Befehl hast, musst du einfach alles entsprechend abändern.
Könnt ihr mir nicht schnell einen machen?
Viel Spaß damit
musst du evtl. noch dem Script anpassen
if(strcmp(cmd, "/giveDonator", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1450)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "* Du hast Spieler %s den Donator-Rang4 gegeben *",giveplayer);
SendClientMessage(playerid, COLOR_DONATOR, string);
format(string, sizeof(string), "* Admin %s hat dir deinen Donator Rang4 gegeben.",sendername);
SendClientMessage(giveplayerid, COLOR_DONATOR, string);
format(string, sizeof(string), "* Herzlichen glückwunsch! Du hast nun einen Donator-Rang! Siehe unter /donatorhelp zu sehen was er dir für Vorteile bringt.",sendername);
SendClientMessage(giveplayerid, COLOR_DONATOR, string);
GivePlayerMoney(giveplayerid, 200000); // 350k
PlayerInfo[giveplayerid][pExp] += 12 ; // 12 RP
PlayerInfo[giveplayerid][pCoins] += 100; // 100 Coins
PlayerInfo[giveplayerid][pDonateRank] = 4; // Premium Rang
new admwarnung[256];
new iyear, imonth,iday;
getdate(iyear, imonth, iday);
format(admwarnung, sizeof(admwarnung), "AdmCmd: %s hat %s den Donator-Rang gegeben! (%d.%d.%d)", sendername, giveplayer,iday,imonth,iyear);
ABroadCast(COLOR_LIGHTRED, admwarnung, 1);
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Das kann nur der Serverleiter!");
return 1;
}
}
return 1;
}
Alles anzeigenViel Spaß damit
musst du evtl. noch dem Script anpassen
if(strcmp(cmd, "/giveDonator", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1450)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "* Du hast Spieler %s den Donator-Rang4 gegeben *",giveplayer);
SendClientMessage(playerid, COLOR_DONATOR, string);
format(string, sizeof(string), "* Admin %s hat dir deinen Donator Rang4 gegeben.",sendername);
SendClientMessage(giveplayerid, COLOR_DONATOR, string);
format(string, sizeof(string), "* Herzlichen glückwunsch! Du hast nun einen Donator-Rang! Siehe unter /donatorhelp zu sehen was er dir für Vorteile bringt.",sendername);
SendClientMessage(giveplayerid, COLOR_DONATOR, string);
GivePlayerMoney(giveplayerid, 200000); // 350k
PlayerInfo[giveplayerid][pExp] += 12 ; // 12 RP
PlayerInfo[giveplayerid][pCoins] += 100; // 100 Coins
PlayerInfo[giveplayerid][pDonateRank] = 4; // Premium Rang
new admwarnung[256];
new iyear, imonth,iday;
getdate(iyear, imonth, iday);
format(admwarnung, sizeof(admwarnung), "AdmCmd: %s hat %s den Donator-Rang gegeben! (%d.%d.%d)", sendername, giveplayer,iday,imonth,iyear);
ABroadCast(COLOR_LIGHTRED, admwarnung, 1);
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Das kann nur der Serverleiter!");
return 1;
}
}
return 1;
}
Naja das passt schonmal aber könnte man noch machen das man einem verschiedene Donator Ränge geben kann?
Mal abgesehen davon, dass der vorherig gepostete Code recht schlampig geschrieben wurde... Bitte:
if(strcmp(cmd, "/giveDonator", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1450)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName] [donatorrank]");
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName] [donatorrank]");
new value;
value = strval(tmp);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "* Du hast Spieler %s den Donator-Rang4 gegeben *",giveplayer);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* Admin %s hat dir deinen Donator Rang4 gegeben.",sendername);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* Herzlichen glückwunsch! Du hast nun einen Donator-Rang! Siehe unter /donatorhelp zu sehen was er dir für Vorteile bringt.",sendername);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
GivePlayerMoney(giveplayerid, 200000); // 350k
PlayerInfo[giveplayerid][pExp] += 12 ; // 12 RP
PlayerInfo[giveplayerid][pCoins] += 100; // 100 Coins
PlayerInfo[giveplayerid][pDonateRank] = value; // Premium Rang
new iyear, imonth,iday;
getdate(iyear, imonth, iday);
format(string, sizeof(string), "AdmCmd: %s hat %s den Donator-Rang gegeben! (%d.%d.%d)", sendername, giveplayer,iday,imonth,iyear);
ABroadCast(COLOR_LIGHTRED, string, 1);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Das kann nur der Serverleiter!");
return 1;
}
}
return 1;
}
Sorry, der Browser rückt alles falsch ein.
Alles anzeigenMal abgesehen davon, dass der vorherig gepostete Code recht schlampig geschrieben wurde... Bitte:
if(strcmp(cmd, "/giveDonator", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] >= 1450)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName] [donatorrank]");
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /giveDonator [playerid/SpielerName] [donatorrank]");
new value;
value = strval(tmp);
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), "* Du hast Spieler %s den Donator-Rang4 gegeben *",giveplayer);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* Admin %s hat dir deinen Donator Rang4 gegeben.",sendername);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
format(string, sizeof(string), "* Herzlichen glückwunsch! Du hast nun einen Donator-Rang! Siehe unter /donatorhelp zu sehen was er dir für Vorteile bringt.",sendername);
SendClientMessage(giveplayerid, COLOR_YELLOW, string);
GivePlayerMoney(giveplayerid, 200000); // 350k
PlayerInfo[giveplayerid][pExp] += 12 ; // 12 RP
PlayerInfo[giveplayerid][pCoins] += 100; // 100 Coins
PlayerInfo[giveplayerid][pDonateRank] = value; // Premium Rang
new iyear, imonth,iday;
getdate(iyear, imonth, iday);
format(string, sizeof(string), "AdmCmd: %s hat %s den Donator-Rang gegeben! (%d.%d.%d)", sendername, giveplayer,iday,imonth,iyear);
ABroadCast(COLOR_LIGHTRED, string, 1);
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Das kann nur der Serverleiter!");
return 1;
}
}
return 1;
}
Sorry, der Browser rückt alles falsch ein.
Und da kann man dann wenn man 2 Donator Ränge hat zwischen 2 Wählen oder?
Bis zu der Zahl, die vom Befehl genehmigt wird (idF. kein Limit^^).
Wenn du willst kannst du dir auch ein Limit setzen, füge dann einfach unter value = strval(tmp); folgendes ein:
if(value < 1 || value > 5) return SendClientMessage(playerid,COLOR_GREY,"FEHLER: Du kannst nur Ränge von 1-5 vergeben!");
Kann man es auch so machen das wenn man mit Donator 1 350k Money bekommt und mit Donator 2 750k Money bekommt?
Ja, sicher.
Entferne die Zeile:
GivePlayerMoney(giveplayerid, 200000); // 350k
und tausche diese mit diesen aus:
if(value == 1)
GivePlayerMoney(giveplayerid,350000);
else //im Grunde dann alles über Donator 2
GivePlayerMoney(giveplayerid,750000);
Okay kann ich es auch machen das wenn man Donator 1 hat 2 Respektpunkte jeden 2 Payday und der Donator 2 2 Respektpunkte jeden Paday bekommt?
Dafür brauch ich dann deinen public PayDay(playerid) ^^.
Dafür brauch ich dann deinen public PayDay(playerid) ^^.
Das steht i-wie nirgens wo?
Ich weiß nicht wie dein public für den PayDay heißt.
Dann such mal nach dem Text, der beim PayDay erscheint und poste den Inhalt hier.
Da du es ja jeden zweiten PayDay haben willst, musst du zusätzlich noch eine neue Zeile für die Speicherung anlegen. Ich gehe mal davon aus, dass du auf Dateien (Standard GF-Speicherung?) und nicht MySQL basierst.
Unter enum pInfo:
pPayTime
Unter OnPlayerRegister zu den anderen fwrite(hFile, var); dann folgendes:
format(var, 32, "PayTime=%d\n",PlayerInfo[playerid][pPayTime]);fwrite(hFile, var);
Unter OnPlayerLogin zu den anderen ini_GetValue( Data ); folgendes:
if( strcmp( key , "PayTime" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPayTime] = strval( val ); }
Unter die zwischenspeicherung (GF meist OnPlayerUpdate) zu den anderen fwrites:
format(var, 32, "PayTime=%d\n",PlayerInfo[playerid][pPayTime]);fwrite(hFile, var);
Zu deinem PayDay Timer:
Entferne die Zeile:
PlayerInfo[i][pExp]++;
und füge zeitgleich folgendes hinzu:
if(PlayerInfo[playerid][pDonateRank] == 1)
{
PlayerInfo[playerid][pPayTime]++;
if(PlayerInfo[playerid][pPayTime] > 1)
{
PlayerInfo[playerid][pPayTime] = 0;
PlayerInfo[playerid][pExp] += 2;
}
}
else PlayerInfo[playerid][pExp] += 2;
if(strcmp(cmd, "/setdonator", true) == 0)
{
new string[128];
if(PlayerInfo[playerid][pAdmin] >= 4)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /setdonator [ID] [Level].");
return 1;
}
new para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
new llevel = strval(tmp);
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(PlayerInfo[para1][Donator] < llevel)
{
printf("AdmCmd: %s hat %s zu einem Level %d Donator befördert.", SpielerName(playerid), SpielerName(para1), llevel);
format(string, sizeof(string),Normal"Du wurdest zum Donator gemacht. Von:"Anzeige" %s "Normal"Level:"Anzeige" %d", SpielerName(playerid), llevel);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string),Normal"Du hast:"Anzeige" %s "Normal"zum Donator gemacht Level:"Anzeige" %d", SpielerName(para1),llevel);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
else
{
printf("AdmCmd: %s hat %s zu einem Level %d Donator degradiert.", SpielerName(playerid), SpielerName(para1), llevel);
format(string, sizeof(string), " Du wurdest durch %s zu einem Level %d Donator degradiert.", SpielerName(playerid), llevel);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " Du hast %s zu einem Level %d Donator degradiert.", SpielerName(para1),llevel);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
PlayerInfo[para1][Donator] = llevel;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Du bist nicht befugt diesen Befehl zu nutzen! ");
}
return 1;
}
Hier die Farben sofern nicht vorhanden:
#define Normal "{FFFFFF}"
#define Anzeige "{00FF00}"
#define COLOR_LIGHTBLUE 0x33CCFFAA
Alles anzeigenif(strcmp(cmd, "/setdonator", true) == 0)
{
new string[128];
if(PlayerInfo[playerid][pAdmin] >= 4)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /setdonator [ID] [Level].");
return 1;
}
new para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
new llevel = strval(tmp);
if(IsPlayerConnected(para1))
{
if(para1 != INVALID_PLAYER_ID)
{
if(PlayerInfo[para1][Donator] < llevel)
{
printf("AdmCmd: %s hat %s zu einem Level %d Donator befördert.", SpielerName(playerid), SpielerName(para1), llevel);
format(string, sizeof(string),Normal"Du wurdest zum Donator gemacht. Von:"Anzeige" %s "Normal"Level:"Anzeige" %d", SpielerName(playerid), llevel);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string),Normal"Du hast:"Anzeige" %s "Normal"zum Donator gemacht Level:"Anzeige" %d", SpielerName(para1),llevel);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
else
{
printf("AdmCmd: %s hat %s zu einem Level %d Donator degradiert.", SpielerName(playerid), SpielerName(para1), llevel);
format(string, sizeof(string), " Du wurdest durch %s zu einem Level %d Donator degradiert.", SpielerName(playerid), llevel);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), " Du hast %s zu einem Level %d Donator degradiert.", SpielerName(para1),llevel);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
}
PlayerInfo[para1][Donator] = llevel;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Du bist nicht befugt diesen Befehl zu nutzen! ");
}
return 1;
}
Hier die Farben sofern nicht vorhanden:
#define Normal "{FFFFFF}"
#define Anzeige "{00FF00}"
#define COLOR_LIGHTBLUE 0x33CCFFAA
Naja dafür mal danke habe den Befel übernommen da der Befehl besser ist als der andere
Aber ich suche etwas wo man wenn man Donator 1 ist jeden 2 Payday 2 Respektpunkte bekommt und bei Donator 2 2 Respektpunkte jeden Payday