Suche immernoch eine passende Animation dafür
Suche immernoch
Suche immernoch eine passende Animation dafür
Suche immernoch
Suche immernoch
Bin nicht ganz sicher, aber schau mal unter der Lib CARRY nacht ![]()
Hey wollte mal fragen wie ich besseres class select machen kann
derzeitiges (code unten) ist etwa so: Login Screen > drückt man irgendwas außer beim Dialog = passiert nix.
Nach login > drückt man next oder spawn, spawnt man irgendwie mit den ersten (oder random skin, ka) ohne dass man überhaupt auf "Spawn" drücken muss oder zur "Skinauswahl" kommt.
Wie ich das haben will:
| Login Screen | > drückt man irgendwas außer Dialog, passiert nix
| Nach Login | > soll man in class select freie auswahl der Skins haben, halt unverbuggt.
public OnPlayerRequestClass(playerid, classid)
{
//Wenn der Spieler die Class-Selection betritt prüfe, ob er bereits eingeloggt ist
if(!PlayerInfo[playerid][pLoggedIn])
{
//Wenn nicht, dann prüfe ob der Spieler ein Konto hat
//Dazu wird ein Query gesendet und ein neues Callback aufgerufen
//%e steht für einen geprüften String (sollte anstatt %s in Queries verwendet werden)
new query[128];
mysql_format(handle, query, sizeof(query), "SELECT id FROM cnrusers WHERE name = '%e'", PlayerInfo[playerid][pName]);
//Das Query wird abgesendet und die playerid an OnUserCheck übergeben
mysql_pquery(handle, query, "OnUserCheck", "d", playerid);
}
if(PlayerInfo[playerid][pLoggedIn] == false)
{
return 0;
}
return 1;
}
Alles anzeigen
public OnGameModeInit()
{
MySQL_SetupConnection();
AddPlayerClassEx(1, 282, 0.000, 0.000, 0.000, 0.000, 23, 250, 25, 150, 3, 1);
AddPlayerClassEx(1, 288, 0.000, 0.000, 0.000, 0.000, 23, 250, 25, 150, 3, 1);
AddPlayerClassEx(1, 311, 0.000, 0.000, 0.000, 0.000, 23, 250, 25, 150, 3, 1);
AddPlayerClassEx(1, 309, 0.000, 0.000, 0.000, 0.000, 23, 250, 25, 150, 3, 1);
AddPlayerClassEx(2, 31, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 32, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 33, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 34, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 35, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 129, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 130, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 131, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 132, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 133, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 157, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 158, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 159, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 160, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 161, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 162, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 196, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 197, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 198, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 199, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 200, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 201, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
AddPlayerClassEx(2, 202, 0.000, 0.000, 0.000, 0.000, 1, 1, 33, 25, 0, 0);
return 1;
}
Alles anzeigen
forward OnUserLogin(playerid);
public OnUserLogin(playerid)
{
//Query wurde ausgeführt und das Ergebnis im Cache gespeichert
if(cache_get_row_count() == 0)
{
//Der Spieler hat ein falsches Passwort eingegeben
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
}
else
{
PlayerInfo[playerid][p_id] = cache_get_field_content_int(0, "id", handle);
PlayerInfo[playerid][pLevel] = cache_get_field_content_int(0, "level", handle);
PlayerInfo[playerid][pMoney] = cache_get_field_content_int(0, "money", handle);
PlayerInfo[playerid][pBank] = cache_get_field_content_int(0, "bank", handle);
PlayerInfo[playerid][pKills] = cache_get_field_content_int(0, "kills", handle);
PlayerInfo[playerid][pDeaths] = cache_get_field_content_int(0, "deaths", handle);
PlayerInfo[playerid][pTeam] = cache_get_field_content_int(0, "team", handle);
PlayerInfo[playerid][pLang] = cache_get_field_content_int(0, "lang", handle);
PlayerInfo[playerid][pRankCop] = cache_get_field_content_int(0, "rank_cop", handle);
PlayerInfo[playerid][pRankCiv] = cache_get_field_content_int(0, "rank_civ", handle);
PlayerInfo[playerid][pExpCop] = cache_get_field_content_int(0, "exp_cop", handle);
PlayerInfo[playerid][pExpCiv] = cache_get_field_content_int(0, "exp_civ", handle);
PlayerInfo[playerid][pConMSGS] = cache_get_field_content_int(0, "con_msgs", handle);
PlayerInfo[playerid][pWanteds] = cache_get_field_content_int(0, "wanteds", handle);
PlayerInfo[playerid][pJail] = cache_get_field_content_int(0, "jail", handle);
PlayerInfo[playerid][pExpCop2] = cache_get_field_content_int(0, "exp_cop2", handle);
PlayerInfo[playerid][pExpCiv2] = cache_get_field_content_int(0, "exp_civ2", handle);
PlayerInfo[playerid][pLoggedIn] = true;
if(PlayerInfo[playerid][pLang] == 1)
{
SendClientMessage(playerid, COLOR_INFO, "");
}
else
{
SendClientMessage(playerid, COLOR_INFO, "");
}
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
}
return 1;
}
Alles anzeigen
[list=1][*]stock mysql_GetStringByString(Table[], Field[], Where[],Where2[])
[*]{
[*] #pragma unused Where2
[*] #pragma unused Where
[*] #pragma unused Table
[*] new str[512];
[*] format(query, 512, "%s", Field);
[*] mysql_fetch_field(query,str);// hier ist der fehler!
[*] return str;
[*]}
[/list]
C:\Users\Administrator\Desktop\test-server
server\gamemodes\test-server.pwn(3371) : error 035: argument type
mismatch (argument 1)
Guten Morgen,
kann mir einer sagen wie ich in MySQL R41 einen Namen auslesen lassen kann?
Dachte so, aber Funktionieren tut es leider nicht.
cache_get_value_name_int(0, "fr_name", format(name, sizeof(name), i));
Auch so Funktioniert es leider nicht.
cache_get_value_name(0, "fr_name", name);
Wie kann/muss ich ihn nun auslesen ?
Mit freundlichen Grüßen,
//e
Falls es helfen sollte, hier der ganze Befehl:
ocmd@2:freunde,friends(playerid, params[])
{
new query[256], name[128], string[512], string2[512], rows;
mysql_format(Handle, query, sizeof(query), "SELECT * FROM `freundesliste` WHERE `username` = '%e'", sInfo[playerid][sName]);
mysql_pquery(Handle, query);
cache_get_field_count(rows);
if(rows != 0)
{
FriendInfo[playerid][TotalFriends] ++;
cache_get_value_name(0, "friendname", name);
printf("fr_name: %s", name);
if(IsFriendOnline(name))
{
format(string, sizeof(string), ""#FARBE_WEISS"%s - "#FARBE_GRUEN"Online\n", name);
strcat(string2, string);
}
else
{
format(string, sizeof(string), ""#FARBE_WEISS"%s - "#FARBE_ROT"Offline\n", name);
strcat(string2, string);
}
ShowPlayerDialog(playerid, DIALOG_FRIENDS, DIALOG_STYLE_MSGBOX, "Deine Freunde", string, "Schliessen", "");
}
return 1;
}
Suche immernoch
Benutz doch meine Funktion und schau ingame nach:
So finde ich immer recht schnell jede Animation die ich suche / brauche.
ocmd:anim(playerid, params[])
{
new cat[64], anim[64];
if(PlayerInfo[playerid][pLoggedIn] == false) return ERR_NO_CON
if(PlayerInfo[playerid][pAdminLevel] == 0) return ERR_NO_ADMIN
if(sscanf(params, "s[64]s[64]", cat, anim)) return SendClientMessage(playerid, COLOR_BEFEHL, "Nutze: /animation [Kategorie] [Animname]");
new string[128];
format(string, sizeof(string), "%s", anim);
new string1[128];
format(string1, sizeof(string1), "%s", cat);
ApplyAnimation(playerid, string1, string, 4.1, 0, 1, 1, 1, 0, 1);
return 1;
}
Alles anzeigen
versuche es mal so:
Der Code ist aber nicht schön...besonders das sizeof(str) ist da fehl am Platz..es reicht hier folgendes zu machen:
cache_get_value_name(0, "sName", sData[sName]);
kann mir jemand helfen wenn ich diesen befehl eingebe kommt immer server:unknow command und dann passiert nichts
if(strcmp(cmd,"/gangwaffenbox",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(IsPlayerInAGang(playerid) || GetPlayerFaction(playerid) == 20)
{
if(IsPlayerAtWaffenBox(playerid))
{
new i = GetPlayerGWB(playerid);
format(string,256,"Gangwaffenbox - Mats: %d | Drugs: %d",GWB[i][gwbmats],GWB[i][gwbdrugs]);
ShowPlayerDialog(playerid,DIALOG_GWB,DIALOG_STYLE_LIST,string,"Materialien einzahlen\nWaffe zusammen bauen\nDrogen einzahlen\nDrogen auszahlen","Weiter","Schließen");
}
else SendClientMessage(playerid,COLOR_RED,"Du bist nicht bei der Gangwaffenbox!");
}
else SendClientMessage(playerid,COLOR_RED,"Du bist in keiner Gang!");
}
return 1;
}
Der Code ist aber nicht schön...besonders das sizeof(str) ist da fehl am Platz..es reicht hier folgendes zu machen:
cache_get_value_name(0, "sName", sData[sName]);
Da hat Kaliber recht, so würde ich es ja eigentlich machen.
ABER: Ich brauche den Namen ja "nur" einmal, daher ist es eigentlich "unnötig" dafür ein Enum zu machen.
Kaliber? Hast du eine Idee wie ich das Problem gelöst bekomme?
Mit freundlichen Grüßen,
Hey hab irgendwie nen weird bugg der mir zuvor nie passiert ist.
Undzwar spawnen bei mir keine Fahrzeuge mehr.. Nicht mehr standardmäßig bei OnGameModeInit und auch nicht per Befehl..
Undzwar spawnen bei mir keine Fahrzeuge mehr.. Nicht mehr standardmäßig bei OnGameModeInit und auch nicht per Befehl..
Dann schau mal in deinen Server Log..bzw Poste diesen mal bitte hier ![]()
Lade am besten crashdetect ![]()
Dann schau mal in deinen Server Log..bzw Poste diesen mal bitte hier
![]()
Lade am besten crashdetect![]()
Omg ich werde von pawn immer getrollt, geht nach server restart irgendwie wieder. Danke trotzdem lol
Edit: Gibts ne public wo man abfrag was für ne klasse der spieler ausgewählt hat? (AddPlayerClass - Klasse)
Edit: Gibts ne public wo man abfrag was für ne klasse der spieler ausgewählt hat? (AddPlayerClass - Klasse)
Jaa, das ist: https://wiki.sa-mp.com/wiki/OnPlayerRequestClass
und wenn sie auf Spawn klicken wird:
https://wiki.sa-mp.com/wiki/OnPlayerRequestSpawn
aufgerufen ![]()
Kann es zu einer Endlos-Schleife führen wenn man sowas hat?
Wenn es z.B. nix paasendes findet und somit nicht zum return kommt und dann ewig continue macht, sodass es in einer endlosen Schleife ist?
Nein, spätestens nach MAX_PLAYERS(1000) Durchläufen hört diese auf.
Danke, hab heute irgendwie viele Fragen...
Aber hier hab ich wahrscheinlich einen Tunnelblick, kann mir jemand sagen wieso ein Cop (Team 1) keine XP für kills bei verbrechern mit wanteds kriegt?
Funktion:
OnPlayerDeath
if(PlayerInfo[killerid][pTeam] == 1)
{
if(PlayerInfo[playerid][pWanteds] > 0)
{
new wmoney = PlayerInfo[playerid][pWanteds] * 450;
new cmoney = PlayerInfo[playerid][pWanteds] * 70;
new jail = PlayerInfo[playerid][pWanteds] * 7;
GivePlayerMoney(playerid, -cmoney);
PlayerInfo[playerid][pMoney] -= cmoney;
new fwmoney = wmoney * PlayerInfo[playerid][pRankCop] / 150;
format(str, sizeof(str), "[BANK] +$%d", fwmoney);
SendClientMessage(killerid, COLOR_MONEY, str);
PlayerInfo[playerid][pBank] += fwmoney;
GivePlayerMoney(killerid, wmoney);
PlayerInfo[killerid][pMoney] += wmoney;
PlayerInfo[killerid][pExpCop] += 2;
if(PlayerInfo[killerid][pLang] == 1)
{
format(str, sizeof(str), "~b~Verbrecher getoetet\n~g~+$%d", wmoney);
GameTextForPlayer(killerid, str, 2500, 3);
format(str, sizeof(str), "Du bist für %d Sekunden im Gefängnis.", jail);
SendClientMessage(playerid, COLOR_INFO, str);
}
else
{
format(str, sizeof(str), "~b~Suspect killed\n~g~+$%d", wmoney);
GameTextForPlayer(killerid, str, 2500, 3);
format(str, sizeof(str), "You're in jail for %d seconds.", jail);
SendClientMessage(playerid, COLOR_INFO, str);
}
PlayerInfo[playerid][pJail] = jail;
}
}
Alles anzeigen
hilfe wieso wird das dialog nich aufgerufen
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp("/cpsh", cmdtext, true, 10))
{
new string[650], string1[128];
strdel(string,0,sizeof(string));
strdel(string1,0,sizeof(string));
if(DIALOG_HEAD == 1)
{
strcat(string1,string);
}
else
{
strcat(string1,string);
}
ShowPlayerDialog(playerid,DIALOG_HEAD,DIALOG_STYLE_LIST,""#ClanTagDialoge"HeadShot Menü",string,"OK","Abbrechen");
return 1;
}
return 0;
}
ich habe keine errors im script
Was zur hölle machst du da? ![]()
Du erstellst 2 strings..die sind leer...
Dann löschst du den Inhalt von leeren strings...da passiert ja nix..weil die schon leer sind..
und dann packst du einen leeren string auf den anderen...
Und dann versuchst du einen leeren String im Dialog anzuzeigen..und das geht natürlich nicht...^^
Also...wtf ![]()
Ich denke er hat vor, abzufragen ob der Dialog offen ist (DIALOG_HEAD == 1)
Geh in OnDialogResponse und frag da ab, ob dialogid == DIALOG_HEAD ist. ![]()