Du nutzt die R40+ Funktionen, aber sagst, dass du das R39 Plugin nutzt. Das geht nicht.
Lade dir das aktuelle Plugin herunter und kompiliere deinen Code mit der aktuellen Include. Starte dann den Server mit dem aktuellen Plugin.
Du nutzt die R40+ Funktionen, aber sagst, dass du das R39 Plugin nutzt. Das geht nicht.
Lade dir das aktuelle Plugin herunter und kompiliere deinen Code mit der aktuellen Include. Starte dann den Server mit dem aktuellen Plugin.
Hmm ich dachte ich hätte die auch schon umgestellt, Danke für deine Hilfe ![]()
Hallo zusammen,
da ich noch relativ frisch bin und dazu gerade nichts gefunden habe, würde ich gerne fragen ob es für den Server Performance Probleme gibt wenn man verschiedene Funktionen - Tor öffnen oder andere Kleinigkeiten in Filterscripts regelt ?
Oder soll ich Objekte nur im Filterscripts laden lassen - keine kleineren Code Teile ?
Grüße
Das spielt keine Rolle.
Generell empfiehlt es sich aber, alles was mit Spielern direkt in Verbindung steht (z. B. Befehl zum Öffnen von Toren) im Gamemode zu haben, falls sich Abfragen im Befehl auf die Statistiken des Spielers beziehen.
Danke dir, Jeffry!
Sorry für die doppelte Frage, es bezieht sich auf Buchstaben - Umlaute vom Script her aus.
Geht speziell gerade um SendClientMessage mit format habe ich es auch schon getestet.
Die werden bei mir nicht erkannt. Gibt es eine Möglichkeit dies zu ändern ?
Habe da folgendes bisher gefunden:
http://forum.sa-mp.com/showthread.php?t=397515
Kann man das noch anders regeln ?
EDIT: Habe festgestellt, dass es eventuell daran liegen kann, weil ich Sublime Text 3 verwende und nicht den Pawno Editor. Kann das sein ? Wenn ja - kann ich das in Sublime ändern ?
EDIT2: Mit Pawno funktioniert es. Gibt es eine Lösung zu Sublime Text 3 oder was verwendet ihr für ein Editor ?
EDIT3 ..... Einfach die Kodierung in Sublime auf Western Windows 1252 stellen und es funktioniert!
David
Ich häng hier einfach fest.
dcmd_gc(playerid,params[])
{
new text[256];
new rang = sSpieler[playerid][Rang];
new spielername[MAX_PLAYER_NAME];
GetPlayerName(playerid,spielername,sizeof(spielername));
if(sscanf(params,"s",text)) return SendClientMessage(playerid,Weiß,"Info: /gc (text)");
if(sSpieler[playerid][Fraktion] == 1 || 2)
{
if(sSpieler[playerid][Rang] == rang)
format(text,sizeof(text),"%s %s %s: %s",GetFraktionName(playerid),GetRangName(playerid),spielername,text);
SendGangMessage(1&&2,Weiß,text);
}
return 1;
}
Wenn Fraktion 1 etwas tippt über den Befehl wird dies ausgegeben.
Schreibt Fraktion 2 aber, passiert nichts.
Und das:
if(sSpieler[playerid][Fraktion] != 1 || 2) return SendClientMessage(playerid,Weiß,"Du bist in keiner Gang!");
geht garnicht, weil man dann in keiner gang ist.
Leaderchat und f funktioniert perefekt und funktioniert mit dem gleichen Prinzip
Du musst das so machen
Also:
dcmd_gc(playerid,params[])
{
new text[256];
new rang = sSpieler[playerid][Rang];
new spielername[MAX_PLAYER_NAME];
GetPlayerName(playerid,spielername,sizeof(spielername));
if(sscanf(params,"s",text)) return SendClientMessage(playerid,Weiß,"Info: /gc (text)");
if(sSpieler[playerid][Fraktion] == 1 || Spieler[playerid][Fraktion]== 2)
{
if(sSpieler[playerid][Rang] == rang)
format(text,sizeof(text),"%s %s %s: %s",GetFraktionName(playerid),GetRangName(playerid),spielername,text);
SendGangMessage(1&&2,Weiß,text);
}
return 1;
}
Alles anzeigen
oder so
dcmd_gc(playerid,params[])
{
new text[256];
new rang = sSpieler[playerid][Rang];
new spielername[MAX_PLAYER_NAME];
GetPlayerName(playerid,spielername,sizeof(spielername));
if(sscanf(params,"s",text)) return SendClientMessage(playerid,Weiß,"Info: /gc (text)");
if(sSpieler[playerid][Fraktion] != 1 || sSpieler[playerid][Fraktion] != 2) return SendClientMessage(playerid,Weiß,"Du bist in keiner Gang!");
{
if(sSpieler[playerid][Rang] == rang)
format(text,sizeof(text),"%s %s %s: %s",GetFraktionName(playerid),GetRangName(playerid),spielername,text);
SendGangMessage(1&&2,Weiß,text);
}
return 1;
}
Hab beide Sachen Probiert, bei beiden Fraktionen kommt nur du bist in keiner gang.
dcmd_lc(playerid,params[])
{
new text[256];
new leaderid = sSpieler[playerid][Leader];
new leadername[MAX_PLAYER_NAME];
GetPlayerName(playerid,leadername,sizeof(leadername));
if(sscanf(params,"s",text)) return SendClientMessage(playerid,Weiß,"/lc (text)");
if(sSpieler[playerid][Leader] < 1) return SendClientMessage(playerid,Weiß,"Du bist kein Leader!");
if(sSpieler[playerid][Leader] == 1)
{
format(text,sizeof(text),"Grove Leader %s: %s",leadername,text);
SendLeaderMessage(leaderid,Weiß,text);
}
if(sSpieler[playerid][Leader] == 2)
{
format(text,sizeof(text),"Ballas Leader %s: %s",leadername,text);
SendLeaderMessage(leaderid,Weiß,text);
}
if(sSpieler[playerid][Leader] == 3)
{
format(text,sizeof(text),"LSPD Leader %s: %s",leadername,text);
SendLeaderMessage(leaderid,Weiß,text);
}
if(sSpieler[playerid][Leader] == 4)
{
format(text,sizeof(text),"Medic Leader %s: %s",leadername,text);
SendLeaderMessage(leaderid,Weiß,text);
}
if(sSpieler[playerid][Leader] == 5)
{
format(text,sizeof(text),"Fahrschul Leader %s: %s",leadername,text);
SendLeaderMessage(leaderid,Weiß,text);
}
if(sSpieler[playerid][Leader] == 6)
{
format(text,sizeof(text),"Transport GmbH Leader %s: %s",leadername,text);
SendLeaderMessage(leaderid,Weiß,text);
}
return 1;
}
bei lc funktioniert das ohne probleme
Hey gibt es eine Funktion womit man die Orientation (Rotation) eines Fahrzeugs herausfinden kann?
Hab danach auf Google geguckt und ich wurde nur verwirrt und konnte nur http://wiki.sa-mp.com/wiki/GetVehicleRotation finden und das verstehe ich nicht ganz.
wo liegt mein Fehler?
#define MAX_GWAFFEN 6
new gWaffen[MAX_GWAFFEN][GangWaffen] = {
{2772.2222,-2444.8743,13.6375},
{2772.2222,-2444.8743,13.6375},
{2772.2222,-2444.8743,13.6375},
{2772.2222,-2444.8743,13.6375},
{2772.2222,-2444.8743,13.6375},
{2772.2222,-2444.8743,13.6375},
{2772.2222,-2444.8743,13.6375},
};
Alles anzeigen
ich bekomm diese Fehler:
error 018: initialization data exceeds declared size
error 010: invalid function or declaration
diese Fehler sind in der drittletzten und letzten Zeile.
Wundert euch nicht bei den Kordinaten
Max Gwaffen auf 7 setzen und bei der letzen Koordinate das Komma entfernen
Warum werden die Autos nicht gelöscht?
new yakuzacar[10];
ocmd:respawncars(playerid)
{
if(sI[playerid][pFraktion] == 1)
{
DestroyVehicle(yakuzacar[9]);
new str[128];
format(str, sizeof(str), "Die Fahrzeuge wurden von %s respawnt!", Spielername(playerid));
SendFraktionMessage(playerid, COLOR_DUNKELROT, str);
CreateYakuzaCars();
}
return 1;
}
stock CreateYakuzaCars()
{
new color = 30;
yakuzacar[0] = CreateVehicle(411, 2748.1331,-2458.8459,13.3755,270.4203, color, color, -1);
yakuzacar[1] = CreateVehicle(411, 2748.0679,-2462.5896,13.3755,269.7689, color,color,-1);
yakuzacar[2] = CreateVehicle(411, 2748.2273,-2466.5874,13.3755,269.2083, color,color,-1);
yakuzacar[3] = CreateVehicle(411, 2748.1118,-2470.7217,13.3755,269.6461, color,color,-1);
yakuzacar[4] = CreateVehicle(411, 2774.2629,-2471.2766,13.3640,87.9245, color,color,-1);
yakuzacar[5] = CreateVehicle(411, 2773.9866,-2475.5884,13.3641,90.3152, color,color,-1);
yakuzacar[6] = CreateVehicle(411, 2774.6057,-2439.7405,13.3639,89.7903, color,color,-1);
yakuzacar[7] = CreateVehicle(411, 2774.5720,-2434.8833,13.3640,90.4021, color,color,-1);
yakuzacar[8] = CreateVehicle(411, 2747.7849,-2448.4302,13.3755,268.1692, color,color,-1);
yakuzacar[9] = CreateVehicle(411, 2747.8696,-2442.9932,13.3716,268.7443, color,color,-1);
return 1;
}
Alles anzeigen
DestroyVehicle(yakuzacar[9]);
Zu
for(new i=0; i < sizeof(yakuzacar); i++) DestroyVehicle(yakuzacar[i]);
DestroyVehicle(yakuzacar[9]);
Zu
for(new i=0; i < sizeof(yakuzacar); i++) DestroyVehicle(yakuzacar[i]);
wie kann man nur die unbesetzten fahrzeuge respawnen?
Nutze dafür diese Funktion:
stock IsAnyPlayerInVehicle(vehicleid)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerVehicleID(i) == vehicleid) return 1;
}
return 0;
}
Und dann so:
for(new i=0; i < sizeof(yakuzacar); i++) if(!IsAnyPlayerInVehicle(yakuzacar[i])) DestroyVehicle(yakuzacar[i]);
Hi, wollte das TSConnector Plugin Testen aber wenn ich auf dem TS bin und InGame /Rechte eingebe Passiert nichts.
Evtl Nützlicher Code:
Befehl:
ocmd:rechte(playerid,params[])
{
TSC_SendClientMessage(PlayerInfo[playerid][pTSUID], "Du hast dir Erfolgreich Rechte gegeben!");
SCM(playerid,COLOR_GREEN,"Rechte?");
return 1;
}
Eindeutige UserId Setzen:
case DIALOG_TS3:
{
new query[200];
if(!response)return true;
new ts3id = strval(inputtext);
format(query,sizeof(query),"UPDATE "AccTable" SET `TS_UID` = '%s' WHERE UserId = '%d'",ts3id,GetPVarInt(playerid,"pDbID")); mysql_query(query);
format(string,sizeof(string),"Du hast deine Ts3 Identität auf %d Geändert",ts3id);
SCM(playerid,COLOR_GREEN,string);
PlayerInfo[playerid][pTSUID] = ts3id;
SCM(playerid,COLOR_GREEN,"Du hast dir Rechte gegeben!");
}
Die Funktion str_replace gibt mir leider einen Fehler in der Console aus.
Folgenderweise verwende ich die Funktion:
Folgendes wird im Dialog angegeben: 00 11 22 33 44
Hierbei sind die Zahlen irrelevant, es geht um das Format. Egal welche Zahlenkombination ich verwende, der Fehler bleibt.
Bei folgenden Kombinationen: 00 11223344 oder auch 00 11 223344 erhalte ich kein Fehler.
Folgender Fehler wird ausgegeben:
Run time error 10: "Native function failed"
strins
Rest irrelevant.
Vielleicht weiß ja einer bescheid.
str_replace ist keine Standard Funktion.
Kannst du die Funktion bitte posten?
Ist die von der str_lib
stock str_replace(sSearch[], sReplace[], const sSubject[], &iCount = 0)
{
new
iLengthTarget = strlen(sSearch),
iLengthReplace = strlen(sReplace),
iLengthSource = strlen(sSubject),
iItterations = (iLengthSource - iLengthTarget) + 1;
new
sTemp[128],
sReturn[_strlib_med_string];
strcat(sReturn, sSubject, _strlib_med_string);
iCount = 0;
for(new iIndex; iIndex < iItterations; ++iIndex)
{
strmid(sTemp, sReturn, iIndex, (iIndex + iLengthTarget), (iLengthTarget + 1));
if(!strcmp(sTemp, sSearch, false))
{
strdel(sReturn, iIndex, (iIndex + iLengthTarget));
strins(sReturn, sReplace, iIndex, iLengthReplace);
iIndex += iLengthTarget;
iCount++;
}
}
return sReturn;
}
Alles anzeigen
Ist die von der str_lib
Versuche es hiermit:
stock str_replace2(const search[],const replace[], source[], size=sizeof source)
{
new i=strfind(source,search),tmp=strlen(search),len=strlen(replace);
if(i==-1) return 0;
for( ; i!=-1; i=strfind(source,search,false,i+len))
{
strdel(source,i,i+tmp);
strins(source,replace,i,size);
}
return 1;
}
new number[20];
format(number, sizeof number, inputtext);
str_replace2(" ", "", number);