←  Poradniki oraz Łatki

AMXX.pl: Support AMX Mod X i SourceMod

»

Dodatek
System Many, Punktów, Złota

  • +
  • -
dRaq - zdjęcie dRaq 25.01.2011

Krótko, zwięźle, 1 Kill = 1 Pkt
Żeby to miało jakiś sens proponuję dorobić do tego sklep
Kod w "znajdź" oparty jest na czystej wersji bez dodatków
Zapis MySQL

Dodanie zmiennej:
Spoiler

Tworzenie komórek w tabeli:
Spoiler

Zapis:
Spoiler

Odczyt z tabeli:
Spoiler

Dodanie 1 pkt po zabiciu:
Spoiler

Hud z ilością PKT:
Spoiler

Możliwe że o czymś zapomniałem, bo jest późno i chce mi się spać -.-
Jako że Wy na początku pomagaliście mi, to ja postanowiłem zrobić coś dla Was :D

Sklep by KariiO:
Kliknij Dołączona grafika, aby podziękować KariiO
Spoiler

Użytkownik G[o]Q edytował ten post 22.04.2011 00:01
Odpowiedz

MARIO2010 - zdjęcie MARIO2010 25.01.2011

Ok załóżmy ze dodałem to do swojego diablo i co z tego jak ktoś uzbiera np. 30 punktów coś za to kupi czy jak ???
Odpowiedz

  • +
  • -
dRaq - zdjęcie dRaq 26.01.2011

musisz dorobic sklep, postaram sie wieczorem dodac co i jak.
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 26.01.2011

Jak dla mnie nie potrzebnie zapisywać to "złoto" na sql, bo po co, skoro do tego chyba lepiej będzie wykorzystać vault? Danych do przetrzymywania mało, więc i nawet przy dużej ilości graczy nie powinno nic zamulać, ani nie powinno być żadnych kłopotów z wczytaniem tego.
Odpowiedz

  • +
  • -
KariiO - zdjęcie KariiO 26.01.2011

Jak by ktoś chciał ułatwienie do sklepu możesz dodać do tuta:
Standardowy sklep używa funkcji od pobierania takiej:
public bool:UTIL_Buyformoney(id,amount)
{
	if (cs_get_user_money(id) >= amount)
	{
		cs_set_user_money(id,cs_get_user_money(id)-amount)
		return true
	}
	else
	{
		hudmsg(id,2.0,"Nie masz tyle zlota !")
		return false
	}
	
	return false
}
Nowy sklep za np. mane:
public UTIL_Buyformana(id,amount)
{
	if (mana[id] >= amount)
	{
		mana[id]-=amount
		return true
	}
	else
	{
		hudmsg(id,2.0,"Nie masz tyle many !")
		return false
	}
	
	return false
}

mana[id] - zmieniamy na swoje...

I zamiast tego w norm. sklepie:
if (!UTIL_Buyformoney(id,9000))
Dajemy to:
if (!UTIL_Buyformana(id,ilosc))

Malusieńki tut jak by ktoś sam nie umiał sobie poradzić ;]
Odpowiedz

strikepremium - zdjęcie strikepremium 26.01.2011

diablo.sma(6389) : error 017: undefined symbol "mana"
diablo.sma(6389) : warning 215: expression has no effect
diablo.sma(6389) : error 001: expected token: ";", but found "]"
Mana nie identyfikuje ?! Czy ocb ?
Użytkownik strikepremium edytował ten post 26.01.2011 12:55
Odpowiedz

  • +
  • -
dRaq - zdjęcie dRaq 26.01.2011

Pokaż linie błędów
Odpowiedz

MARIO2010 - zdjęcie MARIO2010 26.01.2011

pisze ze wspolnika konto od niego na kompie jestem :
	if (mana[id] >= amount)
Odpowiedz

  • +
  • -
dRaq - zdjęcie dRaq 26.01.2011

Chodzi o ten sklep?
Jak robiłeś według poradnika(kopiowałeś wszystko)
To zamiast mana[id] wstaw player_pkt[id]

// Po plusie wnioskuję że pomogło ;D
Użytkownik Skrzato edytował ten post 26.01.2011 17:00
Odpowiedz

szczepaneto - zdjęcie szczepaneto 26.01.2011

nice plusiki a jak w tym sposobie dodać te pkt za dmg np ?

Dodano 26 styczeń 2011 - 22:33:
aa i jeszcze dodam coś od siebie :)
	if(player_class[id]!=Paladyn) 
	{ 
		set_hudmessage(0, 255, 0, 0.03, 0.20, 0, 6.0, 1.0) 
		show_hudmessage(id, "Zycie: %i^nKlasa: %s^nPoziom: %i (%0.0f%s)^nPrzedmiot: %s^nWytrzymalosc: %i^nPunkty: %i",get_user_health(id), Race[player_class[id]], player_lvl[id], perc,"%%", player_item_name[id],item_durability[id], player_pkt[id]) 
	} 
	else 
	{ 
		set_hudmessage(0, 255, 0, 0.03, 0.20, 0, 6.0, 1.0) 
		show_hudmessage(id, "Zycie: %i^nKlasa: %s^nPoziom: %i^n(%0.0f%s)^nSkoki: %i/%i^nPrzedmiot: %s^nWytrzymalosc: %i^nPunkty: %i",get_user_health(id), Race[player_class[id]], player_lvl[id], perc,"%%",JumpsLeft[id],JumpsMax[id], player_item_name[id], item_durability[id], player_pkt[id]) 
	} 
to jest rozwiązanie dla osób z hudem jak na cod :)
Odpowiedz

  • +
  • -
dRaq - zdjęcie dRaq 30.01.2011

Jeżeli chodzi o sklep, ja osobiście zrobiłem go na takiej samej zasadzie jak menu klas. Jak dla mnie wygodniej ;D
Odpowiedz

  • +
  • -
Onyke - zdjęcie Onyke 12.02.2011

Jak zrobić żeby każda klasa miała wspólną mane ?
Tzn że np zdobędziesz 20 many na Lowcy to masz też 20 many na Ninji ?
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 12.02.2011

Zrobić zapis nie na klasę i nick/ip/steam tylko na sam nick/ip/steam? I potem najlepiej skorzystać z vaulta, albo z drugiego zapisu do tabeli.
Użytkownik sebul edytował ten post 12.02.2011 16:09
Odpowiedz

master245 - zdjęcie master245 13.02.2011

a mi po dodaniu tego nie zapisuje sie lvl ;[
Da rade zrobic na nvault??
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 13.02.2011

Tak da, gdzieś na forum jest to ładnie pokazane na przykładzie coda (szukaj w dziale coda).
Odpowiedz

ptk. - zdjęcie ptk. 14.02.2011

a mi po dodaniu tego nie zapisuje sie lvl ;[


Dokładnie mam to samo ... Co jest źle ?? w saveXP ??
Odpowiedz

  • +
  • -
efee - zdjęcie efee 15.02.2011

A jak zmienic savexp jak mam takie
public SaveXP(id)
{
if(g_boolsqlOK)
{
if(!is_user_bot(id) && player_xp[id]!=player_xp_old[id])
{
new name[64]
new ip[64]
new sid[64]

get_user_name(id,name,63)
replace_all ( name, 63, "'", "Q" )
replace_all ( name, 63, "`", "Q" )

get_user_ip(id, ip ,63,1)
get_user_authid(id, sid ,63)

if(get_cvar_num("diablo_sql_save")==0)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `ip`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`pak`='%i',`kas`='%i',`dam`='%i',`men`='%i',`agi`='%i' WHERE `nick`='%s' AND `klasa`='%i' ",g_sqlTable,ip,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_expstat[id],player_kas[id],player_dama[id],player_men[id],player_agility[id],name,player_class[id])

SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==1)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`sid`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`pak`='%i',`kas`='%i',`dam`='%i',`men`='%i',`agi`='%i' WHERE `ip`='%s' AND `klasa`='%i' ",g_sqlTable,name,sid,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_expstat[id],player_kas[id],player_dama[id],player_men[id],player_agility[id],ip,player_class[id])

SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
else if(get_cvar_num("diablo_sql_save")==2)
{
new q_command[512]
format(q_command,511,"UPDATE `%s` SET `nick`='%s',`ip`='%s',`lvl`='%i',`exp`='%i',`str`='%i',`int`='%i',`dex`='%i',`pak`='%i',`kas`='%i',`dam`='%i',`men`='%i',`agi`='%i' WHERE `sid`='%s' AND `klasa`='%i' ",g_sqlTable,name,ip,player_lvl[id],player_xp[id],player_strength[id],player_intelligence[id],player_dextery[id],player_expstat[id],player_kas[id],player_dama[id],player_men[id],player_agility[id],sid,player_class[id])

SQL_ThreadQuery(g_SqlTuple,"Save_xp_handle",q_command)
}
player_xp_old[id]=player_xp[id]

}
}
else sql_start()

return PLUGIN_HANDLED
}

@edit Poradzilem sobie :)
Użytkownik efee edytował ten post 15.02.2011 15:12
Odpowiedz

  • +
  • -
Juma - zdjęcie Juma 24.02.2011

Wrr.. Coś mi zapis expa nie śmiga, próbowałem na kilka sposobów i nici..

Może ktoś coś poradzi kto sobie z tym poradził, bo to nie na moją główkę ;)

Głupi "jako tako" to ja nie jestem, a nie mam pojęcia o co tu chodzi..

Wszystko zrobiłem jak książka, a właściwie poradnik pisze, ładnie poprzepisywałem (nie kopiowałem) wszystko, a tu benc.. Wykasowałem tabele w SQL'u, zmiana mapy rzecz jasna.. I co ? Nic nie zapisuje. Wczytać - Tak. Zapisać - Nie. I to nie tylko mane, a wszystko. Usuwając public'a SaveXP wszystko śmiga jak powinno, rzecz jasna bez many :-P. Może ktoś poradzi ?
Użytkownik Juma edytował ten post 24.02.2011 22:47
Odpowiedz

  • +
  • -
LogiCC :D - zdjęcie LogiCC :D 25.02.2011

Tak dla pewności się spytam. Zrobiłeś reset tabeli? xD
Odpowiedz

  • +
  • -
Juma - zdjęcie Juma 25.02.2011

Tak.. :D
Odpowiedz