Beiträge von German_ScripterHD
-
-
Hallo Brotfische,
Ich habe eine Problem mit dem public "OnPlayerText", undzwar wenn ich z.B Hallo schreibe kommt das ganze im Chat zweimal anstatt einmal.
Ich schreibe Hallo:
German_ScripterHD: Hallo
German_ScripterHD: Halloaber es sollte so sein:
German_ScripterHD: HalloCodes:
public OnPlayerText(playerid, text[])
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);new string[150];
if(supduty[playerid]==1)
{
format(string,sizeof(string), "{C800FF}%s: {FFFFFF}%s",getPlayerName(playerid), text);
}
else
{
format(string,sizeof(string), "%s: %s",getPlayerName(playerid), text);
}new chat_color;
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(!IsPlayerInRangeOfPoint(i, CHAT_RADIUS, x, y, z))continue;
if(GetPlayerVirtualWorld(i)!=GetPlayerVirtualWorld(playerid)) continue;
new Float:distance = GetPlayerDistanceFromPoint(i, x, y, z);
if(distance < CHAT_RADIUS / CHAT_FADES)
{
chat_color = COLOR_CHAT;
}
else if(distance < CHAT_RADIUS / CHAT_FADES * 2)
{
chat_color = COLOR_FADE1;
}
else if(distance < CHAT_RADIUS / CHAT_FADES * 3)
{
chat_color = COLOR_FADE2;
}
else if(distance < CHAT_RADIUS / CHAT_FADES * 4)
{
chat_color = COLOR_FADE3;
}
else if(distance <= CHAT_RADIUS / CHAT_FADES * 5)
{
chat_color = COLOR_FADE4;
}
SendClientMessage(i, chat_color, string);
}
SetPlayerChatBubble(playerid,text,C_Weiß, 100.0, 10000);
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
new Length = strlen(text);
new aTime = Length*400;
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,1,1,1,0,aTime);
return 1;
}
return 0;
}Ich hoffe es kann mir jemand helfen
-
Hallo,
Ich habe mal gegooglet, und bin auf der hier gestoßen, vllt. hilft dir ja das [Filterscript] Kilometerzähler
.
-
[20:51:10] [debug] Run time error 19: "File or function is not found" [20:51:10] [debug] WP_Hash [20:51:10] [debug] Run time error 19: "File or function is not found" [20:51:10] [debug] WP_Hash [20:51:10] Script[gamemodes/Pakour.amx]: Run time error 19: "File or function is not found" [20:51:10] Number of vehicle models: 0
Es sieht so aus, also ob er die Datei "WP_Hash" nicht findet und somit abstürtz, aber bin mir nicht 100% sicher.
-
#Erleditg, habe es selber hinbekommen.
Troztdem Danke
MfG
-
Hallo Brotfische,
Ich möchte mit ein paar Freunden mein SA:MP Server auf Bugs und Co überprüfen, dazu wollte ich mein Server auf dem Wlan Router hosten (nur für die Tests)
Bei meinem Wlan Router handelt es sich um ein Dlink Dir-615.Meine Einstellungen:
Serer.cfg
echo Executing Server Config...
lanmode 0
rcon_password xxxxxx
maxplayers 10
port 8777
hostname Test Server
gamemode0 crmode 1
filterscripts Maps
plugins mysql sscanf streamer
announce 0
query 1
chatlogging 0
weburl www.sa-mp.com
onfoot_rate 40
incar_rate 40
weapon_rate 40
stream_distance 300.0
stream_rate 1000
maxnpc 0
logtimeformat [%H:%M:%S]
language EnglishIch hoffe ihr könnt mir irgendwie helfen
MfG German_ScripterHD
-
@ Jeffry
Danke
Jetzt habe ich noch 1 Error:
error 006: must be assigned to an array
ocmd:delsup(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,-1,"Du bist kein Admin!");
new pID;
if (sscanf(params, "u", pID)) {
return SendClientMessage(playerid, C_Weiß, "Info: /delsupport [playerid/name]");
}
if (!IsPlayerConnected(pID)) {
return SendClientMessage(playerid, COLOR_RED, "Spieler ist Offline.");
}
if (SupAccept[playerid] == -1 || SupAccept[pID] == -1) {
return SendClientMessage(playerid, COLOR_RED, "Du oder der Spieler ist nicht im Support!");
}
SendClientMessage(playerid,-1,"Du hast den Report geschlossen!");
SupAccept[playerid] = -1;
SupAccept[pID] = -1;
SupportText[pID] = " ";// Fehler
return 1;
} -
Der Befehl im Ansatz:
ocmd:sup(playerid,params[])
{
if(SupAccept[playerid] == -1)return SendClientMessage(playerid,C_Error,"Du hast keinen offenen Supportchat!");
if(!params[0])return SendClientMessage(playerid,C_Error,"Info: /sup [Text]");
new string[145];
format(string, sizeof(string), "[Sup] %s", params);
new pID = SupAccept[playerid];
SendClientMessage(pID, 0xFF0000FF, string);
SendClientMessage(playerid, 0xFF0000FF, string);
return 1;
}geht das auch so ? :
ocmd:sup(playerid,params[])
{
if(strlen(SupportText[playerid]) >= 5)//Er hat schon ein Support Ticket erstellt
{
if(SupAccept[playerid] == 1)
{
if(!params[0])return SendClientMessage(playerid,C_Error,"Info: /sup [Text]");
new string[145];
format(string, sizeof(string), "%s[Sup] %s", getPlayerName(playerid),params);
new pID = SupAccept[playerid];
SendClientMessage(pID, 0xFF0000FF, string);
SendClientMessage(playerid, 0xFF0000FF, string);
}
else
{
SendClientMessage(playerid,C_Error,"Du hast keinen offenen Supportchat!");
}
}
else //Er hat noch kein Ticket erstell...
{
ShowPlayerDialog(playerid,Support_Dialog,DIALOG_STYLE_INPUT,"[Report System]","Bitte gebe dein Report in das untere Feld.","Absenden","Abbrechen");
}
return 1;
}//Edit: Rechtschreibfehler
-
Einfach unter OnPlayerText schauen ob der Spieler ein Ticket hat...und ob der Admin online ist...dann dem senden und umgekehrt
Hmm... wie mach ich das denn am besten... ich steh gerade echt auf dem Schlauch.
Bzw. Will ich ja.. das man davor nochmal /sup [Text]-.. -
@ Pascal. Danke, habe es aber schon selbst gelöst gehabt
Jetzt kommt noch einwas, was mir wirklich seit Tagen Kopfschmerzen bereitet:
New´s + Define´s
new SupAccept[MAX_PLAYERS];
new SupportName[MAX_PLAYERS];
new SupportText[MAX_PLAYERS];#define Support_Dialog 118
#define ShowReportDialog 119Befehle:
ocmd:sup(playerid,params[])
{
if(SupAccept[playerid]==1)
{
new string[300],text[150];
if(sscanf(params,"s",text)) return SendClientMessage(playerid,C_Weiß,"/sup [Text]");
format(string,sizeof(string),"%s(Sup):%s",getPlayerName(playerid),text);
SendClientMessage(playerid,C_Weiß,string);
}
else
{
if(strlen(SupportText[playerid]) >= 5) return SendClientMessage(playerid, C_Error, "Du hast bereits ein Ticket erstellt.");
ShowPlayerDialog(playerid,Support_Dialog,DIALOG_STYLE_INPUT,"[Report System]","Bitte gebe dein Report in das untere Feld.","Absenden","Abbrechen");
}
return 1;
}
ocmd:showreports(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,C_Error,"Du hast keine Berechtigung für diesen Befehl!");
new string[128];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(IsPlayerNPC(i))continue;
format(string, sizeof(string), "%s%s | %s\n", string, SupportName[i], SupportText[i]);
}
ShowPlayerDialog(playerid, ShowReportDialog, DIALOG_STYLE_LIST, "Aktuelle Reports", string, "Annehmen", "Abbrechen");
return 1;
}Dialoge:
if(dialogid==Support_Dialog)
{
if(response)
{
if(strlen(inputtext)>8)
{
format(SupportName[playerid],MAX_PLAYER_NAME, getPlayerName(playerid));
format(SupportText[playerid],128,inputtext);
SendClientMessage(playerid,C_Blau,"Dein Report wurde erfolgreich gespeichert.");
SendClientMessage(playerid,C_Blau,"Ein Adminisitrator wird sich gleich um dein Report kümmern.");
}
else
{
SendClientMessage(playerid,C_Error,"Dein Report ist zu kurz!");
ShowPlayerDialog(playerid,Support_Dialog,DIALOG_STYLE_INPUT,"[Report System]","Bitte gebe dein Report in das untere Feld.","Absenden","Abbrechen");
}
}
}
if(dialogid==ShowReportDialog)
{
if(!response)return 1;
new pID = listitem;
if(!strlen(SupportName[pID]))return 1;
SendClientMessage(pID, 0xFF0000FF, "Dein Report wurde geöffnet. Du kannst jetzt mit /sup schreiben.");
SupAccept[pID]=1;
SupAccept[playerid]=1;
return 1;
}Nun meine Frage:
Wie kann ich das mit dem /sup (Nach dem der Report geöffnet wurde) dass Supporter und Spieler zusammen kommunizieren können am besten scripten?
MfG
-
@ Jeffry
Vielen Dank, ich habe heute viel dazu gelernt, nun habe ich noch ein aller letztes Problem
ocmd:delsupport(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,-1,"Du bist kein Admin!");
SendClientMessage(playerid,-1,"Du hast den Report geschlossen!");
SupAccept[playerid /*Admin*/]=0;
//...
SupAccept[/*? Spieler*/]=0;
SupportText[/*? Spieler*/]=" ";
return 1;
}Jetzt ist meine letzte Frage , wie kann ich den Report der anderen Person schließen (Variablen zurücksetzten) ?
//Edit: Schreibfehler
-
@ Jeffry
Danke...
Jetzt noch eine Frage:
Wie kann man Abfragen ob in einem String weniger als 3 Buchstaben oder Zahlen drinne steht ?
Weil ich dann bei ocmd:sup Abfragen möchte ob schon was im "SupportText" schon was drinne steht oder nicht... Sollte etwas im String steh dann würde ich einfach return SendClientMessage(playerid,-1,"Du hast bereits ein Support geöffnet!); senden.
-
@ Jeffry
Danke, aber jetzt komm ich langsam an meine Scripting Grenzen ..
ocmd:sup(playerid,params[])
{
ShowPlayerDialog(playerid,Support_Dialog,DIALOG_STYLE_INPUT,"[Report System]","Bitte gebe dein Report in das untere Feld.","Absenden","Abbrechen");
return 1;
}if(dialogid==Support_Dialog)
{
if(response)
{
if(strlen(inputtext)>8)
{
format(SupportName[playerid],MAX_PLAYER_NAME, getPlayerName(playerid));
format(SupportText[playerid],128,inputtext);
SendClientMessage(playerid,C_Blau,"Dein Report wurde erfolgreich gespeichert.");
SendClientMessage(playerid,C_Blau,"Ein Adminisitrator wird sich gleich um dein Report kümmern.");
}
else
{
SendClientMessage(playerid,C_Error,"Dein Report ist zu kurz!");
ShowPlayerDialog(playerid,Support_Dialog,DIALOG_STYLE_INPUT,"[Report System]","Bitte gebe dein Report in das untere Feld.","Absenden","Abbrechen");
}
}
}ocmd:showreports(playerid,params[])
{
if(!isAdmin(playerid,1))return SendClientMessage(playerid,C_Error,"Du hast keine Berechtigung für diesen Befehl!");
new string[128];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;
if(IsPlayerNPC(i))continue;
format(string, sizeof(string), "%s%s | %s\n", string, SupportName[i], SupportText[i]);
}
ShowPlayerDialog(playerid, ShowReportDialog, DIALOG_STYLE_LIST, "Aktuelle Reports", string, "Annehmen", "Abbrechen");
return 1;
}Soweit sogut
Aber ab jetzt komm ich an meine Grenzen..
if(dialogid==ShowReportDialog)
{
if(!response)return 1;
new tmp;
switch(listitem)
{
case 0..50:
{Undzwar möchte ich wenn der Admin auf den Report drückt das dann die Verbindung zum anderen Spieler hergestellt wird, so das Admin bzw. Supporter mit anderen Spieler im Chat kommunizieren können.
Ich hoffe es kann mir jemand weiter helfen
MfG German_ScripterHD
-
Ich schreibe gerade am Report - System weiter doch leider kommt dieser Error... und ich versteh nicht warum
Error:
error 033: array must be indexed (variable "string")
error 033: array must be indexed (variable "string")Code:
new string[149];
format(string,sizeof(string),"%s",getPlayerName(playerid));
SupportName[playerid]==string; //Fehler
format(string,sizeof(string),"%s",inputtext);
SupportText[playerid]==string;//Fehler -
Hier, ich habe dir einen kleinen Ansatz geschrieben.
if (strcmp("/showreports", cmdtext, true, 12) == 0)
{
//Adminabfrage
new string[128];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(playerid))continue;
if(IsPlayerNPC(playerid))continue;
//Spieler eingelogt abfrage
//Abfrage ob spieler einen Report offen hat
format(str, sizeof(str), "%s%s | %s\n", string, /*Report von*/, /*Reporttext*/);
}
ShowPlayerDialog(playerid, /*dialogid*/, DIALOG_STYLE_LIST, /*Überschrift*/, string, /*button1*/, /*button2*/);
}Danke erstmal
aber gehört das nicht so?
if (strcmp("/showreports", cmdtext, true, 12) == 0)
{
//Adminabfrage
new string[128];
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i))continue;// playerid --> i
if(IsPlayerNPC(i))continue;// playerid --> i
format(str, sizeof(str), "%s%s | %s\n", string, /*Report von*/, /*Reporttext*/);
}
ShowPlayerDialog(playerid, /*dialogid*/, DIALOG_STYLE_LIST, /*Überschrift*/, string, /*button1*/, /*button2*/);
} -
Vllt. hilt dir ja dieses Video weiter
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.Kleiner Tipp Googlenhilft!
MfG German_ScripterHD
-
Vllt. Hilft dir ja dieses Tutorial...
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.MfG German_ScripterHD
-
Loaded log file: "server_log.txt".
----------SA-MP Dedicated Server
----------------------
v0.3.7, (C)2005-2015 SA-MP Team[14:02:33]
[14:02:33] Server Plugins
[14:02:33] --------------
[14:02:33] Loaded 0 plugins.[14:02:33]
[14:02:33] Filterscripts
[14:02:33] ---------------
[14:02:33] Loaded 0 filterscripts.[14:02:33] Script[gamemodes/DorfRL.amx]: Run time error 19: "File or function is not found"
[14:02:33] Number of vehicle models: 0Hier mal die Serverlog
Ich denke es liegt daran das keine Plugins geladen werden...
Schick mal die server.cfg
-
Versuch es mal so:
new Spielerdatei[64];
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",getPlayerName(playerid));und bau diesen Stock in dein Script ein:
stock getPlayerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}MfG German_ScripterHD
-
Dies ist meine Fraktions Abfrage wie sie in meinen Script ist
stock IsPlayerInFrac(playerid,fracid)
{
if (pInfo[playerid][pMember] == fracid || pInfo[playerid][pLeader] == fracid || pInfo[playerid][pFraktion] == fracid)
return 1;
return 0;
}Du willst ja mit der IsPlayerInFrac-Abfrage nur abfragen ob der Spieler in einer Fraktion ist, also probier es mal so:
stock IsPlayerInFrac(playerid, fracid)
{
if(pInfo[playerid][pFraktion] == fracid)return 1;
return 0;
}Im Script kannst du das dann so verwenden:
if(IsPlayerInFrac(playerid,1))
{
SendClientMessage(playerid,-1,"LALALA");
}oder
if(!IsPlayerInFrac(playerid,1))return SendClientMessage(playerid,-1,"Du bist nicht in Fraktion XXXXX !");MfG German_ScripterHD