Hallo Leute,
Das hier sind vorerst 3 Codeschnipsel für euch :3
GF Bugfix (Drogen & Mats)
GWD System (Ohne Noten)
Bitte macht euch ein Backup und achtet darauf, dass Benutzer im Ordner '../scriptfiles/Accounts' gespeichert werden.
Lest euch außerdem bitte alles erst einmal durch und macht es dann Step by Step, dann kann auch nichts schief gehen.
Ich habe bisher nur ein Notensystem gefunden und finde dieses System etwas besser. Es basiert auf dem Lizenzsystem.
Zuerst öffnet ihr euren Gamemode, drückt STRG + F und wähl "Search from caret."
[Only registered and activated users can see links. Click Here To Register...]
Also wir suchen als erstes nach:
Eine Zeile drüber fügt ihr einfach folgendes ein:
Wir suchen weiter nach pCarLic bis wir das hier vorfinden.
und darüber fügen wir folgendes ein:
Wir suchen wieder pCarLic bis wir das hier finden:
und darüber fügt ihr wieder folgendes ein:
Suchen weiter nach pCarLic bis wir das hier finden:
und fügen darüber das hier ein:
Suche fortsetzen bis wir das hier finden:
Darüber fügt ihr das hier ein:
Irgendwo unter deb OnPlayerCommand's fügt ihr dann folgendes ein:
Nun sucht ihr nach dem Command:
und fügt über:
das hier ein:
und über dem hier:
folgendes:
dann über:
folgendes einfügen:
Dann such ihr nach dem Command "/showlicenses" und fügt über:
das hier ein:
Dann über dem hier:
das hier:
So das war es auch schon. Die Commands sind für die Army: /givegwd gwd [ID/Name].
Nachgucken, ob man sie bestanden hat ist kein Problem: /licenses
Screens:
Hitman/Gangshout
fügt einfach irgendwo unter den OnPlayerCommand's dies hier ein:
Ihr könnt je nach bedarf die Fraktion oder Car IDs abändern/rausnehmen.
Ist jetzt nicht das größte, aber dieser Shout ist gut für Entführungen.
Screens:
Command + kleiner Text:
[Only registered and activated users can see links. Click Here To Register...]
Ausgabe.
[Only registered and activated users can see links. Click Here To Register...]
Ich hoffe, alle GF Script Nutzer konnten damit was anfangen.
Liebe Grüße, Yasunai
PS: Ihr wollt mehr? Dann macht mir Vorschläge.
Das hier sind vorerst 3 Codeschnipsel für euch :3
GF Bugfix (Drogen & Mats)
Da ich noch viele Godfather Server sehe, die den Drogenbug nicht gefixt haben, zeig ich euch heute, wie man den fixt.
Wichtig!! Macht euch vorher ein Backup. Eventuell solltet ihr mal vorher/nachher betrachten, damit ihr seht, dass mein Code wirklich den Bug beseitigt.
Als erstes sucht ihr nach Folgendes im Gamemode:
Nun solltet ihr folgendes vorfinden:
Diesen kompletten Code ersetzt ihr dann durch folgendes:
Screens:
Versuch zu buggen
[Only registered and activated users can see links. Click Here To Register...]
Ausgabe vom System
[Only registered and activated users can see links. Click Here To Register...]
Wichtig!! Macht euch vorher ein Backup. Eventuell solltet ihr mal vorher/nachher betrachten, damit ihr seht, dass mein Code wirklich den Bug beseitigt.
Als erstes sucht ihr nach Folgendes im Gamemode:
Code:
"/verstauen"
Code:
//============== /VERSTAUEN ==================//
if(strcmp(cmd, "/verstauen", true) == 0)
{
if(IsPlayerConnected(playerid))
{
for(new i=0; i < MAX_PLAYERS; i++)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(IsACop(i))
{
if(ProxDetectorS(20.0, playerid, i))
{
SendClientMessage(playerid, COLOR_GRAD1, "Cops sind in der Nähe, du kannst nichst verstauen!");
return 1;
}
}
}
new namen[256];
namen = strtok(cmdtext, idx);
if(!strlen(namen))
{
SendClientMessage(playerid, COLOR_GOLD, "|__________________ Befehlshilfe _________________|");
SendClientMessage(playerid, COLOR_GOLD, "Benutzung: /verstauen [Name] ([Menge])");
SendClientMessage(playerid, COLOR_GOLD, "Namen: Waffe1, Waffe2, Materialien, Drogen");
return 1;
}
if(strcmp(namen,"Waffe1", true) == 0)
{
new gunID = GetPlayerWeapon(playerid);
new gunAmmo = GetPlayerAmmo(playerid);
if(gunID != 0 && gunAmmo != 0)
{
PlayerInfo[playerid][pInvWeapon] = gunID;
PlayerInfo[playerid][pInvAmmo] = gunAmmo;
RemovePlayerWeapon(playerid, gunID);
GetPlayerName(playerid, sendername, sizeof(sendername));
new gunname[100];
GetWeaponName(gunID, gunname, sizeof(gunname));
format(string, sizeof(string), " %s in die Tasche verstaut.", gunname);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Waffe, die du in die Tasche verstauen kannst!");
return 1;
}
}
if(strcmp(namen,"Waffe2", true) == 0)
{
new gunID = GetPlayerWeapon(playerid);
new gunAmmo = GetPlayerAmmo(playerid);
if(gunID != 0 && gunAmmo != 0)
{
PlayerInfo[playerid][pInvWeapon2] = gunID;
PlayerInfo[playerid][pInvAmmo2] = gunAmmo;
RemovePlayerWeapon(playerid, gunID);
GetPlayerName(playerid, sendername, sizeof(sendername));
new gunname[100];
GetWeaponName(gunID, gunname, sizeof(gunname));
format(string, sizeof(string), " %s in die Tasche verstaut.", gunname);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Waffe, die du in die Tasche verstauen kannst!");
return 1;
}
}
if(strcmp(namen,"Drogen", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Drogen [Menge]");
format(string, sizeof(string), "Du hast %d Drogen dabei.", PlayerInfo[playerid][pDrugs]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
new tdrugs;
tdrugs = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Drogen [Menge]");
format(string, sizeof(string), " Du hast %d Drogen dabei.", PlayerInfo[playerid][pDrugs]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
if(tdrugs + PlayerInfo[playerid][pInvDrugs] > 60)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst maximal 60 Gramm Drogen in deiner Tasche verstauen!");
return 1;
}
if(tdrugs > PlayerInfo[playerid][pDrugs])
{
SendClientMessage(playerid, COLOR_GRAD2, "So viele Drogen hast du nicht dabei!");
return 1;
}
PlayerInfo[playerid][pDrugs] -= tdrugs;
PlayerInfo[playerid][pInvDrugs] += tdrugs;
format(string, sizeof(string), "%d Gramm Drogen in die Tasche verstaut.", tdrugs);
SendClientMessage(playerid, COLOR_GRAD4, string);
return 1;
}
if(strcmp(namen,"Materialien", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Materialien [Menge]");
format(string, sizeof(string), "Du hast %d Materialien dabei", PlayerInfo[playerid][pMats]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
new matss;
matss = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Materialien [Menge]");
format(string, sizeof(string), " Du hast %d Materialien dabei.", PlayerInfo[playerid][pMats]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
if(matss + PlayerInfo[playerid][pInvMats] > 4000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst maximal 4000 Materials in deiner Tasche verstauen!");
return 1;
}
if(matss > PlayerInfo[playerid][pMats])
{
SendClientMessage(playerid, COLOR_GRAD2, "So viele Materialien hast du dabei!");
return 1;
}
PlayerInfo[playerid][pMats] -= matss;
PlayerInfo[playerid][pInvMats] += matss;
format(string, sizeof(string), "%d Materialien in die Tasche verstaut.", matss);
SendClientMessage(playerid, COLOR_GRAD4, string);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Ungültiger Name!");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Du musst dich erst einloggen!");
}
return 1;
}
Code:
//============== /VERSTAUEN ==================//
if(strcmp(cmd, "/verstauen", true) == 0)
{
if(IsPlayerConnected(playerid))
{
for(new i=0; i < MAX_PLAYERS; i++)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(IsACop(i))
{
if(ProxDetectorS(20.0, playerid, i))
{
SendClientMessage(playerid, COLOR_GRAD1, "Cops sind in der Nähe, du kannst nichst verstauen!");
return 1;
}
}
}
new namen[256];
namen = strtok(cmdtext, idx);
if(!strlen(namen))
{
SendClientMessage(playerid, COLOR_GOLD, "|__________________ Befehlshilfe _________________|");
SendClientMessage(playerid, COLOR_GOLD, "Benutzung: /verstauen [Name] ([Menge])");
SendClientMessage(playerid, COLOR_GOLD, "Namen: Waffe1, Waffe2, Materialien, Drogen");
return 1;
}
if(strcmp(namen,"Waffe1", true) == 0)
{
new gunID = GetPlayerWeapon(playerid);
new gunAmmo = GetPlayerAmmo(playerid);
if(gunID != 0 && gunAmmo != 0)
{
PlayerInfo[playerid][pInvWeapon] = gunID;
PlayerInfo[playerid][pInvAmmo] = gunAmmo;
RemovePlayerWeapon(playerid, gunID);
GetPlayerName(playerid, sendername, sizeof(sendername));
new gunname[100];
GetWeaponName(gunID, gunname, sizeof(gunname));
format(string, sizeof(string), " %s in die Tasche verstaut.", gunname);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Waffe, die du in die Tasche verstauen kannst!");
return 1;
}
}
if(strcmp(namen,"Waffe2", true) == 0)
{
new gunID = GetPlayerWeapon(playerid);
new gunAmmo = GetPlayerAmmo(playerid);
if(gunID != 0 && gunAmmo != 0)
{
PlayerInfo[playerid][pInvWeapon2] = gunID;
PlayerInfo[playerid][pInvAmmo2] = gunAmmo;
RemovePlayerWeapon(playerid, gunID);
GetPlayerName(playerid, sendername, sizeof(sendername));
new gunname[100];
GetWeaponName(gunID, gunname, sizeof(gunname));
format(string, sizeof(string), " %s in die Tasche verstaut.", gunname);
SendClientMessage(playerid, COLOR_GREY, string);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Du hast keine Waffe, die du in die Tasche verstauen kannst!");
return 1;
}
}
if(strcmp(namen,"Drogen", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Drogen [Menge]");
format(string, sizeof(string), "Du hast %d Drogen dabei.", PlayerInfo[playerid][pDrugs]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
new tdrugs;
tdrugs = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Drogen [Menge]");
format(string, sizeof(string), " Du hast %d Drogen dabei.", PlayerInfo[playerid][pDrugs]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
if(tdrugs + PlayerInfo[playerid][pInvDrugs] > 60)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst maximal 60 Gramm Drogen in deiner Tasche verstauen!");
return 1;
}
if(tdrugs > PlayerInfo[playerid][pDrugs])
{
SendClientMessage(playerid, COLOR_GRAD2, "So viele Drogen hast du nicht dabei!");
return 1;
}
if(tdrugs < 0)
{
SendClientMessage(playerid, COLOR_RED, "Du darfst keine negativen Zahlen angeben.");
}
else
{
PlayerInfo[playerid][pDrugs] -= tdrugs;
PlayerInfo[playerid][pInvDrugs] += tdrugs;
format(string, sizeof(string), "%d Gramm Drogen in die Tasche verstaut.", tdrugs);
SendClientMessage(playerid, COLOR_GRAD4, string);
}
return 1;
}
if(strcmp(namen,"Materialien", true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Materialien [Menge]");
format(string, sizeof(string), "Du hast %d Materialien dabei", PlayerInfo[playerid][pMats]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
new matss;
matss = strval(tmp);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /verstauen Materialien [Menge]");
format(string, sizeof(string), " Du hast %d Materialien dabei.", PlayerInfo[playerid][pMats]);
SendClientMessage(playerid, COLOR_GRAD3, string);
return 1;
}
if(matss + PlayerInfo[playerid][pInvMats] > 4000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Du kannst maximal 4000 Materials in deiner Tasche verstauen!");
return 1;
}
if(matss > PlayerInfo[playerid][pMats])
{
SendClientMessage(playerid, COLOR_GRAD2, "So viele Materialien hast du dabei!");
return 1;
}
if(matss < 0)
{
SendClientMessage(playerid, COLOR_GRAD2, "Du darfst keine negativen Zahlen eingeben.");
}
else
{
PlayerInfo[playerid][pMats] -= matss;
PlayerInfo[playerid][pInvMats] += matss;
format(string, sizeof(string), "%d Materialien in die Tasche verstaut.", matss);
SendClientMessage(playerid, COLOR_GRAD4, string);
}
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Ungültiger Name!");
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Du musst dich erst einloggen!");
}
return 1;
}
Versuch zu buggen
[Only registered and activated users can see links. Click Here To Register...]
Ausgabe vom System
[Only registered and activated users can see links. Click Here To Register...]
GWD System (Ohne Noten)
Bitte macht euch ein Backup und achtet darauf, dass Benutzer im Ordner '../scriptfiles/Accounts' gespeichert werden.
Lest euch außerdem bitte alles erst einmal durch und macht es dann Step by Step, dann kann auch nichts schief gehen.
Ich habe bisher nur ein Notensystem gefunden und finde dieses System etwas besser. Es basiert auf dem Lizenzsystem.
Zuerst öffnet ihr euren Gamemode, drückt STRG + F und wähl "Search from caret."
[Only registered and activated users can see links. Click Here To Register...]
Also wir suchen als erstes nach:
Code:
pCarLic
Code:
pGWDLic,
Code:
PlayerInfo[playerid][pCarLic] = 0;
Code:
PlayerInfo[playerid][pGWDLic] = 0;
Code:
format(var, 32, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
Code:
format(var, 32, "GWDLic=%d\n",PlayerInfo[playerid][pGWDLic]);fwrite(hFile, var);
Code:
format(var, 32, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
Code:
format(var, 32, "GWDLic=%d\n",PlayerInfo[playerid][pGWDLic]);fwrite(hFile, var); //pGWDLic
Code:
if( strcmp( key , "CarLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCarLic] = strval( val ); }
Code:
if( strcmp( key , "GWDLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGWDLic] = strval( val ); } //pGWDLic
Code:
//Army GWD Befehl pGWDLic
if(strcmp(cmd, "/givegwd", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[playerid][pLeader] == 3)
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
if(!strlen(x_nr)) {
SendClientMessage(playerid, COLOR_WHITE, "Benutzung: /givegwd [ID/Name]");
SendClientMessage(playerid, COLOR_WHITE, "Damit gibst du jemandem die GWD Bescheinigung");
return 1;
}
if(strcmp(x_nr,"gwd",true) == 0)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Benutze: /givelicense fahren [Spieler ID / Name]");
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 %s die GWD Bescheinigung gegeben",giveplayer);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "* Armyleader %s hat die die GWD Bescheinigung gegeben.",sendername);
SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
PlayerInfo[giveplayerid][pGWDLic] = 1;
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Der Spieler ist Offline !");
return 1;
}
return 1;
}
return 1;
}
else
{
SendClientMessage(playerid, COLOR_RED, "** Du bist kein Armyleader !! **");
}
return 1;
}
return 1;
}
//Army GWD Befehl ENDE
Code:
"/licenses"
Code:
new text1[20]
Code:
new text0[20];
Code:
if(PlayerInfo[playerid][pCarLic]) { text1 = "bestanden"; } else { text1 = "nicht bestanden"; }
Code:
if(PlayerInfo[playerid][pGWDLic]) { text0 = "bestanden"; } else { text0 = "nicht bestanden"; }
Code:
format(string, sizeof(string), "** Führerschein: %s.", text1);
Code:
format(string, sizeof(string), "** Grundwehrdienst: %s.", text0); SendClientMessage(playerid, COLOR_GREY, string);
Code:
new text1[20];
Code:
new text0[20];
Code:
if(PlayerInfo[playerid][pCarLic]) { text1 = "bestanden"; } else { text1 = "nicht bestanden"; }
Code:
if(PlayerInfo[playerid][pGWDLic]) { text0 = "bestanden"; } else { text0 = "nicht bestanden"; }
So das war es auch schon. Die Commands sind für die Army: /givegwd gwd [ID/Name].
Nachgucken, ob man sie bestanden hat ist kein Problem: /licenses
Screens:
Army Command:
[Only registered and activated users can see links. Click Here To Register...]
Bestätigung:
[Only registered and activated users can see links. Click Here To Register...]
Vorschau der Lizenzen:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
Bestätigung:
[Only registered and activated users can see links. Click Here To Register...]
Vorschau der Lizenzen:
[Only registered and activated users can see links. Click Here To Register...]
Hitman/Gangshout
fügt einfach irgendwo unter den OnPlayerCommand's dies hier ein:
Code:
//============ Hitmaninfo =============//
if(strcmp(cmd, "/hii", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8 || PlayerInfo[playerid][pAdmin] >= 2000)
{
if(PlayerInfo[playerid][pMuted] == 1)
{
SendClientMessage(playerid, TEAM_CYAN_COLOR, "Du bist gemutet!");
return 1;
}
if (GetVehicleModel(GetPlayerVehicleID(playerid)) == 560 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 487 || GetVehicleModel(GetPlayerVehicleID(playerid)) == 586)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /hii [Hitmaninfo]");
return 1;
}
SendClientMessageToAll(COLOR_GREEN, "__________Hitman Information__________");
format(string, sizeof(string), "%s", result);
OOCNews(COLOR_NEWS,string);
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Du musst in einem Sultan oder einem Maverick sein !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, " Du bist kein Mitglied der Hitman !");
}
}
}
Ist jetzt nicht das größte, aber dieser Shout ist gut für Entführungen.
Screens:
Command + kleiner Text:
[Only registered and activated users can see links. Click Here To Register...]
Ausgabe.
[Only registered and activated users can see links. Click Here To Register...]
Liebe Grüße, Yasunai
PS: Ihr wollt mehr? Dann macht mir Vorschläge.