You last visited: Today at 05:21
Advertisement
GF Bugfix (Drogen & Mats)
Discussion on GF Bugfix (Drogen & Mats) within the Grand Theft Auto forum part of the Other Online Games category.
01/30/2013, 01:36
#1
elite*gold: 159
Join Date: Sep 2010
Posts: 3,001
Received Thanks: 598
Godfather Codeschnipsel von Yasunai
Hallo Leute,
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:
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;
}
Diesen kompletten Code ersetzt ihr dann durch folgendes:
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;
}
Screens:
Versuch zu buggen
Ausgabe vom System
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."
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.
Code:
PlayerInfo[playerid][pCarLic] = 0;
und darüber fügen wir folgendes ein:
Code:
PlayerInfo[playerid][pGWDLic] = 0;
Wir suchen wieder pCarLic bis wir das hier finden:
Code:
format(var, 32, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
und darüber fügt ihr wieder folgendes ein:
Code:
format(var, 32, "GWDLic=%d\n",PlayerInfo[playerid][pGWDLic]);fwrite(hFile, var);
Suchen weiter nach pCarLic bis wir das hier finden:
Code:
format(var, 32, "CarLic=%d\n",PlayerInfo[playerid][pCarLic]);fwrite(hFile, var);
und fügen darüber das hier ein:
Code:
format(var, 32, "GWDLic=%d\n",PlayerInfo[playerid][pGWDLic]);fwrite(hFile, var); //pGWDLic
Suche fortsetzen bis wir das hier finden:
Code:
if( strcmp( key , "CarLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCarLic] = strval( val ); }
Darüber fügt ihr das hier ein:
Code:
if( strcmp( key , "GWDLic" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGWDLic] = strval( val ); } //pGWDLic
Irgendwo unter deb OnPlayerCommand's fügt ihr dann folgendes ein:
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
Nun sucht ihr nach dem Command:
und fügt über:
das hier ein:
und über dem hier:
Code:
if(PlayerInfo[playerid][pCarLic]) { text1 = "bestanden"; } else { text1 = "nicht bestanden"; }
folgendes:
Code:
if(PlayerInfo[playerid][pGWDLic]) { text0 = "bestanden"; } else { text0 = "nicht bestanden"; }
dann über:
Code:
format(string, sizeof(string), "** Führerschein: %s.", text1);
folgendes einfügen:
Code:
format(string, sizeof(string), "** Grundwehrdienst: %s.", text0);
SendClientMessage(playerid, COLOR_GREY, string);
Dann such ihr nach dem Command "/showlicenses" und fügt über:
das hier ein:
Dann über dem hier:
Code:
if(PlayerInfo[playerid][pCarLic]) { text1 = "bestanden"; } else { text1 = "nicht bestanden"; }
das hier:
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:
Bestätigung:
Vorschau der Lizenzen:
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 !");
}
}
}
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:
Ausgabe.
Ich hoffe, alle GF Script Nutzer konnten damit was anfangen.
Liebe Grüße, Yasunai
PS: Ihr wollt mehr? Dann macht mir Vorschläge.
01/31/2013, 16:18
#2
elite*gold: 80
Join Date: May 2012
Posts: 221
Received Thanks: 73
Ich brauchs zwar nicht aber finde es gut das du des hier teilst ^^
02/01/2013, 12:58
#3
elite*gold: 395
Join Date: Jan 2012
Posts: 12,905
Received Thanks: 5,360
Auf jeden Fall gut gemacht auch wenn ich es nich gebrauchen kann.
04/20/2013, 21:49
#4
elite*gold: 0
Join Date: May 2012
Posts: 871
Received Thanks: 642
"Wie er hofft" :-)
Netter Release können einige definitiv was mit anfangen.
Similar Threads
Erfahrungen mit Drogen ("mildere" Drogen [Natur bis Anfänger der Chemie])
08/07/2011 - Off Topic - 8 Replies
Aufgrund der Langeweile eine Art Diskussions- und Erfahrungsthread. (Ähnlich wie bei Foren, die sich auf das Thema spezialisiert haben.)
Und zwar:
Ich möchte gerne von euch wissen, ob und welche Erfahrungen ihr mit folgenden Drogen gemacht habt. Gute, sowie auch schlechte Erfahrungen zählen.
Ich möchte darauf hinweisen, dass ich keinesfalls den Drogenkonsum unterstütze, und ich will euch auch bitten halbwegs ernst zu bleiben und keine Metin2-Storys wie: "Ey jo altah!1! 15g schnelles...
[PHP] Bugfix suche
06/28/2010 - Web Development - 4 Replies
Hallo leute,
ich hab hier ein kleines Script geschrieben
class mysql
{
function verbindung($server,$name,$pw)
{
mysql_connect($server,$name,$pw);
}
function datenbankauswahl($auswahl)
[ANGEBOT] Bugfix
03/09/2010 - WoW Private Server - 10 Replies
hey leute :)
da ich vermehrt beschwerden und probleme mitbekomme
Von nutzern von MANGOS servern
würde ich mich anbieten euch über teamviewer/icq/msn
zu helfen diese bugs zu fixxen
ich kann helfen bei:
Wartungsarbeiten + Bugfix 29.07.08
07/30/2008 - Metin2 - 29 Replies
Metin2 Forum | News - Game | Wartungsarbeiten + Bugfix 29.07.08
was sagt ihr dazu -.-'
All times are GMT +1. The time now is 05:23 .