[SAMMELTHREAD] Kleine Scripting Fragen
- Rafelder
- Unerledigt
Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Code
Alles anzeigenCMD:unload(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if(IsPlayerInRangeOfPoint(playerid, 5.0, 1563.4137,-1694.5535,5.8906)) { if(GetVehicleModel(vehicleid) == 428) { new string[128], int; new money = int*6; if(sscanf(params, "i", int))return SendClientMessage(playerid, COLOR_GREY, "{247BA6}* Benutze {33AA33}/unload [Menge]"); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich in keinem Lieferwagen."); if(!(Spieler[playerid][pFraktion] == 14))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Member der Transport GmbH."); if(Frak[1][frakEisen] + int > 250000)return SendClientMessage(playerid, -1, "Das Lager ist bei diesem Int-Wert voll"); if(Vehicle[GetPlayerVehicleID(playerid)][vehProds] <= 0)return SendClientMessage(playerid, -1, "Keine Produkte"); Frak[1][frakEisen] += (int); Vehicle[vehicleid][vehProds] -= int; format(string, sizeof(string), "{B4B5B7}Verbrecher mit /arrest einsperren\n\n{21DD00}Waffenkammer (LSPD)\n%d/250000\nMaterialien", Frak[1][frakEisen]); Update3DTextLabelText(lspd3d, COLOR_LSPDSTOR, string); SendClientMessage(playerid, COLOR_WHITE,"{21DD00}Gehalt: 300000$"); format(string, sizeof(string), "{21DD00}Materialien: %d/50000", Vehicle[vehicleid][vehProds]); SendClientMessage(playerid, COLOR_WHITE, string); Spieler[playerid][pBank] += money; format(string, sizeof(string), "* Staatskasse hat dir %d$ überwiesen. Betreff: Materialien abgeliefert (%d)", money, Vehicle[vehicleid][vehProds]); SendClientMessage(playerid, COLOR_GREEN, string); } } if(GetVehicleModel(vehicleid) == 515 || GetVehicleModel(vehicleid) == 514) { if(GetVehicleModel(GetVehicleTrailer(vehicleid)) == 435) { new string[128], int, vehicleid = GetPlayerVehicleID(playerid); if(sscanf(params, "i", int))return SendClientMessage(playerid, COLOR_GREY, "{247BA6}* Benutze {33AA33}/unloadprods [Menge]"); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Mitglied der Transport GmbH"); if(int < 1 || int > 200)return SendClientMessage(playerid, COLOR_GREY, "** Du kannst nur maximal 200 Produkte abladen."); if(int > Vehicle[vehicleid][vehProds])return SendClientMessage(playerid, COLOR_GREY, "** Soviele Produkte hast du nicht dabei."); if(!(Spieler[playerid][pFraktion] == 14))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Mitglied der Transport GmbH"); for(new i=1;i<MAX_BIZ;i++) { if(Biz[i][bCreated] == 1) { if(IsPlayerInRangeOfPoint(playerid, 5.0, Biz[i][bEnterX], Biz[i][bEnterY], Biz[i][bEnterZ])) { if(GetVehicleModel(vehicleid) == 515 || GetVehicleModel(vehicleid) == 514) { if(GetVehicleModel(GetVehicleTrailer(vehicleid)) == 435) { if(Biz[i][bProdukte] == Biz[i][bMaxProdukte])return SendClientMessage(playerid, COLOR_GREY, "** Dieses Geschäft hat bereits die maximale Anzahl an Produkten."); new bizmoney = Biz[i][bKasse]; new kosten = (Biz[i][bProdPreis]*int); if(bizmoney < kosten)return SendClientMessage(playerid, COLOR_GREY, "** Die Geschäftskasse hat nicht genügend Geld für die Ware."); if(int > (Biz[i][bMaxProdukte]-Biz[i][bProdukte]))return SendClientMessage(playerid, COLOR_GREY, "** Soviel Produkte kann dieses Geschäft nicht haben."); Vehicle[vehicleid][vehProds] -= int; Biz[i][bProdukte] += int; format(string, sizeof(string), "* Du hast dem Geschäft %d Produkte für $%d verkauft.", int, kosten); Biz[i][bKasse] -= kosten; GiveMoney(playerid, kosten); SendClientMessage(playerid, COLOR_GREEN, string); UpdateBizLabel(i, Biz[i][bOwned]); } } } } } if(GetVehicleModel(vehicleid) == 515 || GetVehicleModel(vehicleid) == 514) { if(GetVehicleModel(GetVehicleTrailer(vehicleid)) == 584) { new string[128], int, vehicleid = GetPlayerVehicleID(playerid); if(sscanf(params, "i", int))return SendClientMessage(playerid, COLOR_GREY, "{247BA6}* Benutze {33AA33}/unloadbenzin [Menge]"); if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, COLOR_GREY, "** Du befindest dich in keinem Tanker."); if(!(Spieler[playerid][pFraktion] == 14))return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Member der Transport GmbH."); if(int < 1 || int > 2500)return SendClientMessage(playerid, COLOR_GREY, "** Du kannst nur maximal 2500 Liter abladen."); if(int > Vehicle[GetVehicleTrailer(vehicleid)][vehProds])return SendClientMessage(playerid, COLOR_GREY, "** Soviel Liter hast du nicht dabei."); for(new i=1;i<MAX_TANKEN;i++) { if(Tanke[i][tCreated] == 1) { if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ])) { if(Tanke[i][tLiter] == Tanke[i][tMaxLiter])return SendClientMessage(playerid, COLOR_GREY, "** Diese Tankstelle hat bereits die maximale Anzahl an Benzin."); new cash = Tanke[i][tKasse]; new kosten = (Tanke[i][tBenzinAnkauf]*int); if(cash < kosten)return SendClientMessage(playerid, COLOR_GREY, "** Die Kasse hat nicht genügend Geld für das Benzin."); if(int > (Tanke[i][tMaxLiter]-Tanke[i][tLiter]))return SendClientMessage(playerid, COLOR_GREY, "** Soviel Liter kann diese Tankstelle nicht haben."); Vehicle[GetVehicleTrailer(vehicleid)][vehProds] -= int; new Float:intfloat = float(int); new Float:add = floatadd(intfloat, Tanke[i][tLiter]); Tanke[i][tLiter] = add; format(string, sizeof(string), "* Du hast der Tankstelle %d Liter für $%d verkauft.", int, kosten); Tanke[i][tKasse] -= kosten; GiveMoney(playerid, kosten); SendClientMessage(playerid, COLOR_GREEN, string); UpdateTankLabel(i, Tanke[i][tOwned]); } } } } } } } return 1; }Kurze Frage kann das so stimmen bin mir da nicht so sicher

-
Bin sehr begeistert von der Binaersuche im Vergleich zu der Variante mit dem Iterator bei dem Pickupsystem

Bei einem Array mit der Groesse MAX_PICKUPS verdammt schnell
Bench for iterator: executes, by average, 13.32 times/ms.
Bench for binarysearch: executes, by average, 2623.24 times/ms.Aber warum findet Binaersuche eigentlich so wenig Anwendung in SA-MP Allgemein? Habe gerade mal 1 Thema dazu im englischen SA-MP Forum gefunden.. Gibt doch bestimmt super viele Anwendungen dafuer
-
Gibt doch bestimmt super viele Anwendungen dafuer
Wo man einen Index in einer sortieren Liste finden muss?

Ich denke..eher nicht so

-
Code
Alles anzeigenCMD:lieferung(playerid, params[]) { new vehicleid = GetPlayerVehicleID(playerid); if(GetVehicleModel(vehicleid) == 428) { ShowPlayerDialog(playerid, DIALOG_LIEFERUNG, DIALOG_STYLE_LIST, "Transport GmbH - Firmen Übersicht", "Waffenkammer LSPD\nWaffenkammer FBI\nWaffenkammer LVPD", "GPS", "Schließen"); } else if(GetVehicleModel(vehicleid) == 515 || GetVehicleModel(vehicleid) == 514) { if(GetVehicleModel(GetVehicleTrailer(vehicleid)) == 435) { ShowPlayerDialog(playerid, DIALOG_LIEFERUNG, DIALOG_STYLE_LIST, "Transport GmbH - Firmen Übersicht","Ammunation LS\nAmmunation SF\nAmmunation LV\nTelefon BIZ\nHaus Upgrade\nWerbeagentur\nSupermarkt\nPaintball\nKart Bahn\nFahrzeuglackiererei","GPS", "Schließen"); } } else if(GetVehicleModel(vehicleid) == 515 || GetVehicleModel(vehicleid) == 514) { if(GetVehicleModel(GetVehicleTrailer(vehicleid)) == 584) { ShowPlayerDialog(playerid, DIALOG_LIEFERUNG, DIALOG_STYLE_LIST, "Transport GmbH - Tankstellen Übersicht","Temple Station\nIdlewood\nFlint County\nWhetstone\nDoherty\nJuniper Hill\nAngel Pine\nEaster Basin\nEmerald Isle\nBone County\nTierra Robada\nFort Carson","GPS", "Schließen"); } } return 1; }
Ich habe eine frage es funktioniert soweid alles außer das letzte weil der Trailer eine andere ID hat wen ich den ankoppel und /lieferung mache nimmt er es nicht an?Warum die ersten beiden Funktionieren?
-
Folgender Befehl, folgende Fehler;
forward GetAdmins(playerid);
public GetAdmins(playerid)
{
new string[512], header[128], adminrang, name[MAX_PLAYER_NAME], online, OnlineString[32], pYear, pMonth, pDay, pHour, pMinute, pSecond, lastlogin;
new rows = cache_num_rows();
for(new i=0;i<rows;i++)
{
adminrang = cache_get_field_content_int(i, "Admin");
lastlogin = cache_get_field_content_int(i, "LastLogin");
cache_get_field_content(i, "Name", name, myCon, MAX_PLAYER_NAME);
if(adminrang > 0 && adminrang < 6)
{
TimestampToDate(lastlogin, pYear, pMonth, pDay, pHour, pMinute, pSecond, 1, 0);
online = cache_get_field_content_int(i, "playerOnline");
if(online == 0)OnlineString=""COLOR_HEX_RED"Offline";
else if(online == 1)OnlineString=""COLOR_HEX_GREEN"Online";
format(header, sizeof(header),""COLOR_HEX_WHITE"Team-Mitglied\tStatus\tLetzte Aktivität");
format(string, sizeof(string),"%s\n%s\n%s %s\t%s\t%02d.%02d.%02d - %02d:%02d:%02d", header, string, GetAdminName(adminrang), name, OnlineString, pDay, pMonth, pYear, pHour, pMinute, pSecond);
//format(string, sizeof(string), "%s%s %s - %s\t\t", string, GetAdminName(adminrang), name, OnlineString);
}
}
ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_TABLIST_HEADERS, "Team-Mitglieder", string, "Schließen", "");
return 1;
}3 Team-Mitglieder vorhanden, werden alle angezeigt. Jedoch auch 2 mal der header..
Weiterhin möchte ich gerne, dass sobald das Team-Mitglied online ist, nicht die letzte Aktivität sondern einfach ein "-" angezeigt wird. -
Ich habe das ganze nicht getestet aber so sollte es gehen ob der Spieler ein Admin ist könntest du im MySQL query auch abfragen
//Definier das oben im Script damit kannst du abfragen ob ein String leer ist
#define isnull(%1) \
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))forward GetAdmins(playerid);
public GetAdmins(playerid)
{
new String[512], header[128], adminrang, name[MAX_PLAYER_NAME], online, OnlineString[32], pYear, pMonth, pDay, pHour, pMinute, pSecond, lastlogin;adminrang = cache_get_field_content_int(i, "Admin");
lastlogin = cache_get_field_content_int(i, "LastLogin");
cache_get_field_content(i, "Name", name, myCon, MAX_PLAYER_NAME);for(new i=0;i<cache_num_rows();i++)
{
if(adminrang > 0 && adminrang < 6)
{
TimestampToDate(lastlogin, pYear, pMonth, pDay, pHour, pMinute, pSecond, 1, 0);
online = cache_get_field_content_int(i, "playerOnline");if(isnull(String))
{
if(online == 0)
{
format(string, sizeof(string),""COLOR_HEX_WHITE"Team-Mitglied\tStatus\tLetzte Aktivität\n%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", GetAdminName(adminrang), name, pDay, pMonth, pYear, pHour, pMinute, pSecond);
}
else if(online == 1)
{
format(string, sizeof(string),""COLOR_HEX_WHITE"Team-Mitglied\tStatus\tLetzte Aktivität\n%s %s\tOnline\t-", GetAdminName(adminrang), name);
}
}
else
{
if(online == 0)
{
format(String, sizeof(String),"%s\n%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", GetAdminName(adminrang), name, pDay, pMonth, pYear, pHour, pMinute, pSecond);
}
else if(online == 1)
{
format(String, sizeof(String),"%s\n%s %s\tOnline\t-", String, GetAdminName(adminrang), name);
}
}
}
}
ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_TABLIST_HEADERS, "Team-Mitglieder", string, "Schließen", "");
return 1;
} -
Nope, funktioniert leider so gar nicht. Der Dialog ist vollkommen 'verbuggt', wird mir nur ein Team-Mitglied angezeigt und der Team-Rang im HEADER.
public GetAdmins(playerid)
{
new string[512], header[128], adminrang, name[MAX_PLAYER_NAME], online, pYear, pMonth, pDay, pHour, pMinute, pSecond, lastlogin;
for(new i=0;i<cache_num_rows();i++)
{
adminrang = cache_get_field_content_int(i, "Admin");
lastlogin = cache_get_field_content_int(i, "LastLogin");
cache_get_field_content(i, "Name", name, myCon, MAX_PLAYER_NAME);
if(adminrang > 0 && adminrang < 6)
{
TimestampToDate(lastlogin, pYear, pMonth, pDay, pHour, pMinute, pSecond, 1, 0);
online = cache_get_field_content_int(i, "playerOnline");
if(isnull(string))
{
if(online == 0)
{
format(string, sizeof(string),""COLOR_HEX_WHITE"Team-Mitglied\tStatus\tLetzte Aktivität\n%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", GetAdminName(adminrang), name, pDay, pMonth, pYear, pHour, pMinute, pSecond);
}
else if(online == 1)
{
format(string, sizeof(string),""COLOR_HEX_WHITE"Team-Mitglied\tStatus\tLetzte Aktivität\n%s %s\tOnline\t-", GetAdminName(adminrang), name);
}
}
else
{
if(online == 0)
{
format(string, sizeof(string),"%s\n%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", GetAdminName(adminrang), name, pDay, pMonth, pYear, pHour, pMinute, pSecond);
}
else if(online == 1)
{
format(string, sizeof(string),"%s\n%s %s\tOnline\t-", string, GetAdminName(adminrang), name);
}
}
}
}
ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_TABLIST_HEADERS, "Team-Mitglieder", string, "Schließen", "");
return 1;
} -
Ich habe den String noch nicht gesetzt jetzt sollte es gehen.
Beispiel:
format(string, sizeof(string),"%s\n%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", GetAdminName(cache_get_field_content_int(i, "Admin")), name, pDay, pMonth, pYear, pHour, pMinute, pSecond);
zu
format(string, sizeof(string),"%s\n%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", string, GetAdminName(cache_get_field_content_int(i, "Admin")), name, pDay, pMonth, pYear, pHour, pMinute, pSecond);
#define isnull(%1) \
((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))forward GetAdmins(playerid);
public GetAdmins(playerid)
{
new String[1024], BenutzerName[MAX_PLAYER_NAME], Jahr, Monat, Tag, Stunde, Minute, Sekunde;mysql_query(MySQL, "SELECT * FROM `Accounts` WHERE Admin > '0' AND Admin < '6' ORDER BY `Admin` DESC", true);
for(new i=0;i<cache_num_rows();i++)
{
cache_get_field_content(i, "Name", BenutzerName, myCon, MAX_PLAYER_NAME);
TimestampToDate(cache_get_field_content_int(i, "LastLogin"), Jahr, Monat, Tag, Stunde, Minute, Sekunde, 1, 0);if(isnull(String))
{
if(cache_get_field_content_int(i, "playerOnline") == 0)
{
format(String, sizeof(String),"Team-Mitglied\tStatus\tLetzte Aktivität\n\%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", GetAdminName(cache_get_field_content_int(i, "Admin")), BenutzerName, Tag, Monat, Jahr, Stunde, Minute, Sekunde);
}
else if(cache_get_field_content_int(i, "playerOnline") == 1)
{
format(String, sizeof(String),"Team-Mitglied\tStatus\tLetzte Aktivität\n\%s %s\tOnline\t-", GetAdminName(cache_get_field_content_int(i, "Admin")), BenutzerName);
}
}
else
{
if(cache_get_field_content_int(i, "playerOnline") == 0)
{
format(String, sizeof(String),"%s\n\%s %s\tOffline\t%02d.%02d.%02d - %02d:%02d:%02d", String, GetAdminName(cache_get_field_content_int(i, "Admin")), BenutzerName, Tag, Monat, Jahr, Stunde, Minute, Sekunde);
}
else if(cache_get_field_content_int(i, "playerOnline") == 1)
{
format(String, sizeof(String),"%s\n\%s %s\tOnline\t-", String, GetAdminName(cache_get_field_content_int(i, "Admin")), BenutzerName);
}
}
}
ShowPlayerDialog(playerid, DIALOG_ADMINS, DIALOG_STYLE_TABLIST_HEADERS, "Team-Mitglieder", String, "Schließen", "");
return 1;
}//Edit jetzt geht es, und mit der Methode sollte es auch ohne Public gehen.
-
-
Beitrag von xPatrick ()
Dieser Beitrag wurde vom Autor gelöscht (). -
Code
Alles anzeigenCMD:offlineprison(playerid) { new string[128]; if(Spieler[playerid][pFraktion] != 1)return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter."); for(new i=0;i<MAX_OFFLINEPICKUPS;i++) { if(OfflineInfo[i][pickCreated] == true) { if(IsPlayerInRangeOfPoint(playerid, 2, OfflineInfo[i][pickPos][0], OfflineInfo[i][pickPos][1], OfflineInfo[i][pickPos][2])) { if(OfflineInfo[i][pickWanteds] == 0)return SendClientMessage(playerid, COLOR_GREY, "Der Spieler hat keine Wanteds."); format(string, sizeof(string), ">> %s %s hat den Verbrecher %s eingesperrt. <<", GetRankName(Spieler[playerid][pFraktion], Spieler[playerid][pRank]), GetName(playerid), OfflineInfo[i][pickName]); SendClientMessageToAll(COLOR_RED, string); new gehalt = (750*OfflineInfo[i][pickWanteds]); if(gehalt > 80000)gehalt = 80000; new knastzeit = OfflineInfo[i][pickWanteds]*360; OfflineInfo[i][pickWanteds] = 0; format(string, sizeof(string), "~w~Gesuchten ~g~eingesperrt~n~~g~+$~w~%d", gehalt); GameTextForPlayer(playerid, string, 3000, 6); Spieler[playerid][pJobMoney] += gehalt; format(string, sizeof(string), "HQ: %s %s hat %s verhaftet, für %d Sekunden eingesperrt, over.", GetRankName(Spieler[playerid][pFraktion], Spieler[playerid][pRank]), GetName(playerid), OfflineInfo[i][pickName], knastzeit); SendFraktionMessage(1, COLOR_COP_MELDUNG, string); format(string, sizeof(string), "SELECT * FROM `script_accounts` WHERE `Name`='%s'", OfflineInfo[i][pickName]); mysql_function_query(myCon, string, true, "OArrest", "is[24]iii", playerid, OfflineInfo[i][pickName], knastzeit, 2, gehalt); return 1; } } } return 1; }Hallo,
Ich habe ein Problem beim Offline arresten.
Die nachtricht kommt das ich den User eingesperrt habe aber wen er wider drauf kommt spawnt er ganz normal?
und die Wanteds bleiben auch normal? -
Guten Abend Jungs^^
Kann mir jemand verraten, wie man beim Login Textdraw diesen Bug entfernt, dass alles markiert wird anstatt das einzenlde wort beim drüberfahren mit der Maus?
Liebe Grüsse
-
-
Danke hat 1A funktioniert

Habe noch ein anderes Problem:
Ich möchte den Zustand sowie die Geschwindigkeit im Textdraw zeigen lassen habe jetzt schon folgendes:
GetPlayerSpeed(playerid){new Float:x, Float:y, Float:z,Float:rtn;if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),x,y,z); else GetPlayerVelocity(playerid,x,y,z);rtn = floatsqroot(x*x+y*y+z*z);return floatround (rtn * 100*1.61);}for(new i;i<MAX_PLAYERS;i++){if(IsPlayerInAnyVehicle(i)){new string;format(string,sizeof(string),"%d km/h",GetPlayerSpeed(playerid,true));TextDrawSetString(TachoTXT[10][i], string);// In diesen Puplic wird der Tacho angezeigt wenn er im Fahrzeug ist....
Bekomme jedoch 3 Errors
C:\Users\xPaddz\Desktop\Selfmade\gamemodes\Roleplay.pwn(1458) : warning 219: local variable "string" shadows a variable at a preceding level
C:\Users\xPaddz\Desktop\Selfmade\gamemodes\Roleplay.pwn(1459) : error 035: argument type mismatch (argument 1)
C:\Users\xPaddz\Desktop\Selfmade\gamemodes\Roleplay.pwn(1459) : error 035: argument type mismatch (argument 1)
C:\Users\xPaddz\Desktop\Selfmade\gamemodes\Roleplay.pwn(1460) : error 035: argument type mismatch (argument 2)
C:\Users\xPaddz\Desktop\Selfmade\gamemodes\Roleplay.pwn(1458) : warning 203: symbol is never used: "string"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
-
new string; zu new string[128];
GetPlayerSpeed(playerid,true) zu GetPlayerSpeed(playerid)
//
New string entfernen -
Beitrag von Dr. Frauenarzt ()
Dieser Beitrag wurde vom Autor gelöscht (). -
new string; zu new string[128];
GetPlayerSpeed(playerid,true) zu GetPlayerSpeed(playerid)
//
New string entfernenGut soweit, jetzt steht noch rror 017: undefined symbol "playerid"
Keine Idee was daran nicht stimmt
-
Code
Alles anzeigenCMD:sup(playerid, params[]) { new input[90], text[96], string[128]; if(!IsLoggedIn(playerid))return 1; if(sscanf(params, "s[90]", input))return SendClientMessage(playerid, COLOR_GREY, "Benutze /sup [Nachricht]"); new bool:isOnline; for(new i=0;i<GetMaxPlayers();i++) { if(IsPlayerConnected(i) && Spieler[i][pLoggedIn]) { if(Spieler[i][pAdmin] > 0) { isOnline = true; } } } if(!isOnline) { SendClientMessage(playerid, COLOR_GREY, "Derzeit ist kein Team Mitglied online."); return 1; } // CREATE SUPPORT TICKET if(GetTicketCount() > MAX_REPORTS)return SendClientMessage(playerid, COLOR_GREY, "Die Team Mitglieder haben momentan zuviele Tickets. Schreibe in einigen Minuten ein neues Ticket!"); if(Spieler[playerid][pReportAktiv] != 0)return SendClientMessage(playerid, COLOR_GREY, "Du bist bereits in einem aktiven Report oder hast ein Ticket erstellt!"); SendClientMessage(playerid, COLOR_GREEN, "Du hast ein Support-Ticket abgeschickt. Bitte gedulde dich nun einen moment."); format(string, sizeof(string), "%s hat ein Support-Ticket erstellt! (/areport)", GetName(playerid)); SendAdminMessage(COLOR_GREEN, string); format(string, sizeof(string), "Support-Ticket: "COLOR_HEX_WHITE"%s", input); SendClientMessage(playerid, COLOR_GREEN, string); Spieler[playerid][pReportAktiv] = 1; new ticket = GetFreeTicket(); gSupport[ticket][ticketCreated] = true; format(gSupport[ticket][ticketMessage], 90, input); gSupport[ticket][ticketSender] = playerid; gSupport[ticket][ticketAdmin] = INVALID_PLAYER_ID; gSupport[ticket][ticketType] = 1; format(string, sizeof(string), "Offene Tickets: ~g~%d", GetTicketCount()); for(new i=0;i<GetMaxPlayers();i++) { if(IsLoggedIn(i)) { if(Spieler[i][pAdminDuty] == 1) { PlayerTextDrawSetString(i, pTextSupport[i][2], string); } } } if(Spieler[playerid][pReportAktiv] == 1) { for(new i=0;i<MAX_REPORTS;i++) { if(gSupport[i][ticketCreated]) { if(gSupport[i][ticketSender] == playerid && Spieler[playerid][pAdmin] == 0) { if(gSupport[i][ticketAdmin] != INVALID_PLAYER_ID) { if(IsPlayerConnected(gSupport[i][ticketAdmin])) { strdel(text, 0, 1); format(string, sizeof(string), "{21DD00}(( %s: %s ))", GetName(playerid), text); SendClientMessage(gSupport[i][ticketAdmin], COLOR_WHITE, string); SendClientMessage(playerid, COLOR_WHITE, string); return 0; } else { SendClientMessage(playerid, COLOR_GREY, "* Dein Gegenüber ist offline. Das Ticket wurde gelöscht."); gSupport[i][ticketAdmin] = INVALID_PLAYER_ID; gSupport[i][ticketSender] = INVALID_PLAYER_ID; gSupport[i][ticketCreated] = false; gSupport[i][ticketType] = 0; strdel(gSupport[i][ticketMessage], 0, 90); return 0; } } } else if(gSupport[i][ticketAdmin] == playerid && Spieler[playerid][pAdmin] > 0) { if(gSupport[i][ticketSender] != INVALID_PLAYER_ID) { if(IsPlayerConnected(gSupport[i][ticketSender])) { strdel(text, 0, 1); format(string, sizeof(string), "{21DD00}(( %s: %s ))", GetName(playerid), text); SendClientMessage(gSupport[i][ticketSender], COLOR_WHITE, string); SendClientMessage(playerid, COLOR_WHITE, string); return 0; } else { SendClientMessage(playerid, COLOR_GREY, "Dein Gegenüber ist offline. Das Ticket wurde gelöscht."); gSupport[i][ticketAdmin] = INVALID_PLAYER_ID; gSupport[i][ticketSender] = INVALID_PLAYER_ID; gSupport[i][ticketCreated] = false; gSupport[i][ticketType] = 0; strdel(gSupport[i][ticketMessage], 0, 90); for(new a=0;a<GetMaxPlayers();a++) { if(Spieler[a][pLoggedIn]){ if(Spieler[a][pAdminDuty] == 1) { format(string, sizeof(string), "Offene Tickets: ~g~%d", GetTicketCount()); PlayerTextDrawSetString(a, pTextSupport[a][2], string); } } } return 0; } } } } } } return 1; }Hallo,
Ich habe das Problem wen ich jetzt den report annehme könn wir nicht antworten.
/sup Text (Admin) genauso auch für User das er /sup eingibt und dann den text aber das klappt iwie nicht?
-
Wie macht man es, dass man beim Login/Register die Spawn Taste nicht benutzen kann... also da nix passiert?
