Jep, passt alles. Vielen Dank
--> erledigt
Jep, passt alles. Vielen Dank
--> erledigt
Ja im englischen SA-MP Forum kann man Bugs reporten.
Vielleicht könntest du das machen, weil ich kann englische Texte nur sehr besch... bescheiden verfassen
Nein, leider klappt es bei mir dann immernoch nicht...
Und du hast auch 0.3b RC1? Dann könnte es wirklich daran liegen.
Hallo Community,
weil Nova auf 0.3b RC1 umgestiegen ist, musste ich vor ein paar Tagen auch meinen Client und Testserver auf 0.3b RC1 aktualisieren.
Seit dem Wechsel habe ich aber folgendes Problem:
Wenn sich ein Spieler einloggt, dann spawnt der Spieler nicht, obwohl ich den Spieler mit SpawnPlayer spawnen lasse...
Auch wenn der Spieler einen Spawn requestet (OnPlayerRequestSpawn) ändert sich nichts. Ich habe testeweise sogar in OnPlayerRequestSpawn "SpawnPlayer" verwendet und einmal den Callback komplett ausgelassen (dann sollte er ja auch spawnen).
Ich habe auch einen Timer vor dem Login gesetzt, also kann es nicht am Laden liegen (den habe ich sogar auf 1 Minute gesetzt...).
Mir ist auch aufgefallen, dass OnPlayerSpawn gar nicht aufgerufen wird, also der ganze Spawn hakt. Ich habe echt schon alle möglichen Spawnmethoden durchgetestet, aber keine funktioniert...
Ich habe echt keine Ahnung mehr, was ich falsch mache, wenn ihr Codeschnipsel braucht, poste ich sie gerne (ich wüsste grade nicht, welche wichtig wären...)
Ich hoffe mir kann einer helfen.
Mit freundlichen Grüßen
K3nNy
Hey Leute,
wenn ich meinen Server starten will, bekomme ich folgenden Error:
----------
Loaded log file: "server_log.txt".
----------
SA-MP Dedicated Server
----------------------
v0.3a R8, (C)2005-2010 SA-MP Team
Server Plugins
--------------
Loaded 0 plugins.
Started server on port: 7777, with maxplayers: 5 lanmode is OFF.
Filter Scripts
---------------
Loading filter script 'test.amx'...
Loaded 1 filter scripts.
Script[gamemodes/stuntserv.amx]: Run time error 19: "File or function is not found"
Number of vehicle models: 0
Alles anzeigen
Ich weiß, dass es schon hunderte Threads zu diesem Error gibt, aber keiner konnte mein Problem lösen...
Anscheinend ist es ein Fehler, der 1000 verschiedene Gründe haben kann...
Naja zur Entstehung:
Mein Server (ein Testserver, der auf meinem PC läuft) läuft unter Windows 7.
Bisher lief immer alles wie es sollte.
Heute wolle ich nur ein paar stocks in ein include packen und das dann starten --> Error 19.
Ich habe den ganzen Kram dann wieder zurückkopiert wie es vorher war, den
#include
wieder rausgenommen, aber trotzdem kam der Fehler...
Ich wüsste nicht, was ich großartig verändert habe, vielleicht könnt ihr mir helfen...
MfG
K3nNy
*edit*
OK hat sich erledigt...
ich hatte in einem anderen Include unten natives hinzugefügt.
Als ich diese gelöscht habe, lief wieder alles.
Ich dachte immer, dass die natives nur dazu da sind, dass die Befehle in Pawno einen Infotext haben... aber anscheinend machen die auch Probleme
P.S.: Wenn jemand mal langeweile hat, kann er mir ja mal erklären, warum die natives das Ausführen behindern können...
Ah ok, versanden vielen Dank
Sry, dass ich frage, aber wie meint ihr das, dass ihr ein eigenes Geldsystem erstellt? Wie geht das? Was bedeutet das?
Ich habe genau das gleiche Problem und ich ziehe nirgendwo 100$ ab...
Nur beim Tod verlieren die Spieler immer 100$
Ok dei Fehler ist:
Der Timer leitet die Variable "playerid" nicht weiter, die für die Funktion wichtig ist.
Änder mal den Timer auf:
SetTimerEx("reptimer",3500,false, "i", playerid);
dann wird die Variable übergeben, und die Funtion reptimer kann korrekt arbeiten
Dann hast du den Befehl falsch aufgerufen. Poste Mal bitte den Code, wo die Funktion aufgerufen wird.
Korrektur von Pixels' Script:
dcmd_slap(playerid,cmdtext)
{
new pID,pSize;
if(sscanf(params, "dd",pID,pSize))
{
//wenn nur /slap eingegeben worden ist
}
new Float:X,Float:Y,Float:Z;
GetPlayerPos(pID,X,Y,Z);
SetPlayerPos(pID,X,Y,Z+pSize);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp("/boost", cmdtext, true))
{
if(IsPlayerInAnyVehicle(playerid))
{
new vID, Float:Xvelo, Float:Yvelo, Float:Zvelo, Float:rot;
vID = GetPlayerVehicleID(playerid);
GetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);
GetVehicleZAngle(vID, rot);
Xvelo=Xvelo+(floatcos(rot+90, degrees)*1.5);
Yvelo=Yvelo+(floatcos(360-rot, degrees)*1.5);
SetVehicleVelocity(vID, Xvelo, Yvelo, Zvelo);
return 1;
}
else return SendClientMessage(playerid, 0xFFFFFFFF, "Du bist in keinem Fahrzeug.");
}
return 0;
}
Endlich fertig
/boost klappt, mein Server auch wieder *freu*
#include <a_samp>
#include <dini>
#define DIALOG_LOGIN 3
#define DIALOG_REG 4
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
#define COLOR_RED 0xB90000FF
#define COLOR_YELLOW 0xC3FF00FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_BLUE 0x0A00FFFF
#define GRAD2 0xBFC0C2FF
#define GRAD5 0xBFC0C2FF
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_GELB 0xFFFF00FF
#define COLOR_BLAU 0x0023FFFF
#define DIALOG_SPAWN 1
#define COLOR_REDA 0xFF0000FF//ServerOwner
#define COLOR_LIGHTBLUE 0x33CCFFAA//Administrator
#define COLOR_LIGHTGREEN 0x9ACD32AA//moderator
#define COLOR_ORANGERED 0xFF4500AA//superadmin
enum spieler_daten
{
wanted,
skin,
Float:lastx,Float:lasty,Float:lastz,
eingeloggt,
AdminLevel
}
/*
new gAdmin[MAX_PLAYERS];
new Tutorial[MAX_PLAYERS]; // Die 3 geben Warnings wenn du sie nicht verwendest.
new pInfo[MAX_PLAYERS];
*/
new bsnenter;
new bsnexit;
forward tuttimer(playerid);
forward Score(playerid);
new Spieler[MAX_PLAYERS][spieler_daten];
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by your name here");
print("----------------------------------\n");
}
public OnGameModeInit()
{
bsnenter=CreatePickup(1559,1,1199.1121,-918.1558,43.1241);
bsnexit=CreatePickup(1559,1,362.9167,-75.2149,1001.5078);
Create3DTextLabel("BSN\n Eingang",COLOR_BLAU,1199.1121,-918.1558,43.1241,10,0);
DisableInteriorEnterExits();
SetGameModeText("Script by Shoxi");
AddPlayerClass(0,2070.4934,1355.3760,10.6719,153.8582,0,0,0,0,0,0); // Position
AddPlayerClass(1,2070.4934,1355.3760,10.6719,153.8582,25,200,0,0,0,0); // Position
AddStaticVehicle(411,1227.7511,-918.4766,42.5119,101.5333,123,1); // Auto1
AddStaticVehicle(412,1227.1154,-914.8206,42.5121,99.1268,112,1); // Auto2
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid,2070.4934,1355.3760,10.6719); // Position
SetPlayerFacingAngle(playerid,153.8582);
SetPlayerCameraPos(playerid,2069.8442,1353.1063,10.6719);
SetPlayerCameraLookAt(playerid,2070.4934,1355.3760,10.6719);
return 1;
}
public OnPlayerConnect(playerid)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(fexist(accFormat))
{
ShowPlayerDialog
(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Weiter","Abbrechen");
}
else
{
ShowPlayerDialog
(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Weiter","Abbrechen");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(fexist(accFormat) && Spieler[playerid][eingeloggt])
{
dini_IntSet(accFormat,"wanted",Spieler[playerid][wanted]);
dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
dini_FloatSet(accFormat,"lastx",Spieler[playerid][lastx]);
dini_FloatSet(accFormat,"lasty",Spieler[playerid][lasty]);
dini_FloatSet(accFormat,"lastz",Spieler[playerid][lastz]);
dini_IntSet(accFormat,"Geld",GetPlayerMoney(playerid));
dini_IntSet(accFormat,"Score",GetPlayerScore(playerid));
dini_IntSet(accFormat,"AdminLevel",Spieler[playerid][AdminLevel]);
}
Spieler[playerid][eingeloggt] = 0;
Spieler[playerid][wanted] = 0;
Spieler[playerid][skin] = 0;
Spieler[playerid][lastx] = (0.0);
Spieler[playerid][lasty] = (0.0);
Spieler[playerid][lastz] = (0.0);
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext,"/ports",true)==0)
{
if (IsPlayerAdmin(playerid))
ShowPlayerDialog(playerid,DIALOG_SPAWN,DIALOG_STYLE_MSGBOX,"Ports","Wo möchten sie hin?","BSN","LSPD");
else
{
SendClientMessage(playerid, COLOR_BLAU, "Du Bist Kein Admin!");
}
return 1;
}
return 0;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
if(pickupid==bsnenter)
{
SetPlayerPos(playerid,364.4705,-73.7672,1001.5078);
SetPlayerInterior(playerid,10);
GameTextForPlayer(playerid,"~b~Du hast den~n~ BSN betreten.",3000,3);
return 1;
}
if(pickupid==bsnexit)
SetPlayerPos(playerid,1199.2083,-920.9971,43.0283);
SetPlayerFacingAngle(playerid,187.0484);
SetCameraBehindPlayer(playerid);
SetPlayerInterior(playerid,0);
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid==DIALOG_SPAWN)
{
if(response==1)
{
SetPlayerPos(playerid,1227.1154,-914.8206,42.5121);
SendClientMessage(playerid,0xFFFF00FF,"Du wurdest zum BSN Teleportiert");
}
if(response==0)
{
SetPlayerPos(playerid,1542.9987,-1675.6642,13.5556);
SendClientMessage(playerid,0xFFFF0FF,"Du wurdest zum LSPD Teleportiert");
}
}
new pname[MAX_PLAYERS],accFormat[128];
GetPlayerName(playerid,pname,sizeof pname);
format(accFormat,sizeof accFormat,"%s.datei",pname);
if(response)
{
switch(dialogid) // dialogid auswählen
{
case DIALOG_LOGIN: // ID Login
{
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
}
if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0) // Passwort Direkt aus der Datei Laden
{
Spieler[playerid][wanted] = dini_Int(accFormat,"wanted");
Spieler[playerid][skin] = dini_Int(accFormat,"skin");
Spieler[playerid][lastx] = dini_Float(accFormat,"lastx");
Spieler[playerid][lasty] = dini_Float(accFormat,"lasty");
Spieler[playerid][lastz] = dini_Float(accFormat,"lastz");
GivePlayerMoney(playerid,dini_Int(accFormat,"Geld"));
SetPlayerScore(playerid,dini_Int(accFormat,"Score"));
Spieler[playerid][AdminLevel] = dini_Int(accFormat, "AdminLevel");
Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
}
else
{
ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
}
}
case DIALOG_REG: // ID Registrieren
{
if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
{
ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
}
dini_Create(accFormat);
dini_Set(accFormat,"Passwort",inputtext);
dini_IntSet(accFormat, "AdminLevel" , 0);
Spieler[playerid][AdminLevel] = 0;
Spieler[playerid][eingeloggt] = 1;
SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
}
}
}
else
{
switch(dialogid)
{
case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
Ohne die ganzen leeren Callbacks^^ ist doch gleich viel übersichtlicher
Dann muss deine Abfrage wie folgt lauten:
if(Spieler[playerid][AdminLevel] >= 1)
{
//CODE
}
*edit*
Du muss aber aufpassen, dass die Variable Spieler[playerid][AdminLevel] im ganzen Script gilt
Ne sry hab grade meinen Server abgeschossen und muss den jetzt erstmal wieder hinbekommen...
Strecke*1.61=Meter
Soweit war ich auch schon Ich würde jetzt ja gerne an dem Script probieren, aber leider klappt grad mein ganzer Server nicht mehr...
Vielleicht bin ich morgen soweit und kann das testen
Ich probiers mal, da ich mich mit dem Befehl selber noch nicht so gut auskenne.
Mal sehen, ob ich was hinbekomme. Ich melde mich dann
1 Meter = 1*1.61
12 Meter = 12*1.61
Also: Eine Strecke im Koordinatensystem mal 1.61 = die Strecke in Metern
Wenn du auf den Button klickst... schließt sich das Fenster dann, oder bleibt es da und es passiert einfach nichts, bis du auf Abbrechen klickst?
Hast du den unteren Teil auch unter OnDialogResponse?
Sonst klappt es selbstverständlich nicht